Tổng quan
Lớp dữ liệu là một từ điển lưu giữ thông tin chung về ứng dụng.
Tệp này sử dụng một bộ khoá tiêu chuẩn để bất cứ bên nào hiểu được thông số kỹ thuật cũng có thể đọc được. Trạng thái của lớp dữ liệu được cập nhật thông qua API. Ví dụ: một ứng dụng có thể bắt đầu với các dataLayer sau:
{ title: "Original screen title" }
Khi trạng thái/dữ liệu của ứng dụng có thể thay đổi, ứng dụng có thể cập nhật dataLayer bằng lệnh gọi như:
[dataLayer push:@{@"title": @"New screen title"}];
Bây giờ, lớp dữ liệu chứa:
{ title: "New screen title" }
Sau khi một lần đẩy diễn ra:
[dataLayer push:@{@"xyz": @3}];
dataLayer chứa:
{ "title": "New screen title", "xyz": 3 }
Ví dụ sau đây minh hoạ cách hoạt động của quá trình hợp nhất mảng và bản đồ. Nếu dataLayer ban đầu chứa:
{ "items": @[@"item1", [NSNull null], @"item2", @{@"a": @"aValue", @"b": @"bValue"}] }
Sau khi quá trình đẩy này diễn ra:
[dataLayer push:@{@"items": @[[NSNull null], @"item6", kTAGDataLayerObjectNotPresent, @{@"a": [NSNull null]}]}
dataLayer chứa:
{ "items": @[[NSNull null], @"item6", @"item2", @{@"a": [NSNull null], @"b": @"bValue"}]} }
Các thao tác đẩy diễn ra một cách đồng bộ; sau khi đẩy, các thay đổi đã được phản ánh trong mô hình.
Khi khoá event
được đẩy đến lớp dữ liệu, các quy tắc cho thẻ sẽ được đánh giá và mọi thẻ khớp với sự kiện này sẽ kích hoạt. Ví dụ: giả sử một vùng chứa có thẻ có quy tắc kích hoạt là "event" bằng "openScreen", sau lần đẩy này:
[dataLayer push:@{@"event", @"openScreen"}];
thì thẻ đó sẽ kích hoạt.
Hàm thành phần công khai | |
(vô hiệu) | – pushValue:forKey: |
Đẩy một cặp khoá/giá trị đến lớp dữ liệu. | |
(vô hiệu) | – thông báo đẩy: |
Hợp nhất đối tượng update đã cho vào mô hình dữ liệu hiện có, gọi bất kỳ trình nghe nào có bản cập nhật (sau khi quá trình hợp nhất xảy ra). | |
(NSObject *) | – nhận: |
Trả về đối tượng trong mô hình liên kết với khoá đã cho. |
Tài liệu về chức năng của thành viên
- (vô hiệu) pushValue: | (NSObject *) | value | |
Khoá dành cho: | (NSObject *) | khoá | |
Đẩy một cặp khoá/giá trị đến lớp dữ liệu.
Đây chỉ là một phương thức tiện lợi để gọi push:@{key: value}
.
– (vô hiệu) đẩy: | (NS từ điển *) | cập nhật |
Hợp nhất đối tượng update
đã cho vào mô hình dữ liệu hiện có, gọi bất kỳ trình nghe nào có bản cập nhật (sau khi quá trình hợp nhất xảy ra).
Giá trị trong từ điển (hoặc Mảng được nhúng) sẽ thuộc loại NSNull
. Nếu bạn muốn biểu thị một giá trị bị thiếu (chẳng hạn như chỉ mục trống trong Danh sách), hãy sử dụng đối tượng kTAGDataLayerObjectNotPresent
.
Đây thường là lệnh gọi đồng bộ. Tuy nhiên, nếu trong khi luồng đang thực thi thao tác đẩy, một lần đẩy khác lại xảy ra từ cùng một luồng, thì lần đẩy thứ hai đó không đồng bộ (lần đẩy thứ hai sẽ trở về trước khi các thay đổi được thực hiện đối với lớp dữ liệu). Ví dụ: nếu lượt đẩy lớp dữ liệu được thực hiện để phản hồi một thẻ kích hoạt, thì lần đẩy thứ hai này từ cùng một luồng có thể xảy ra. Tuy nhiên, tất cả các bản cập nhật sẽ được xử lý trước khi thao tác đẩy ngoài cùng trở lại.
Nếu update
chứa khoá event
, các quy tắc sẽ được đánh giá và các thẻ trùng khớp sẽ kích hoạt.
- Các tham số:
-
cập nhật Đối tượng cập nhật để xử lý
– (NSObject*) nhận: | (NSString *) | key |
Trả về đối tượng trong mô hình liên kết với khoá đã cho.
Nếu không có khoá, hàm sẽ trả về nil
. Nếu có key
nhưng NSNull
thì trả về NSNull
.
Khoá có thể có dấu chấm nhúng. Ví dụ: khoá của "a.b.c"
trả về giá trị của khoá "c" khoá trong từ điển bằng khoá "b" trong từ điển bằng khoá "a" trong mô hình.