Tài liệu tham khảo về lớp TAGDataLayer

Tài liệu tham khảo về lớp TAGDataLayer

Tổng quan

Lớp dữ liệu là một từ điển chứa thông tin chung về ứng dụng.

Mã này sử dụng một bộ khoá tiêu chuẩn để bất kỳ bên nào hiểu được thông số kỹ thuật cũng có thể đọc được. Trạng thái 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 bằng dataLayer sau:

   {
     title: "Original screen title"
   }

Khi trạng thái/dữ liệu của ứng dụng có thể thay đổi nên ứng dụng có thể cập nhật dataLayer bằng một 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 đẩy thêm một lần nữa:

   [dataLayer push:@{@"xyz": @3}];

dataLayer bao gồm:

   {
     "title": "New screen title",
     "xyz": 3
   }

Ví dụ sau minh hoạ cách hoạt động của quá trình hợp nhất mảng và bản đồ. Nếu dataLayer gốc chứa:

   {
     "items": @[@"item1", [NSNull null], @"item2", @{@"a": @"aValue", @"b": @"bValue"}]
   }

Sau khi trường hợp đẩy này diễn ra:

   [dataLayer push:@{@"items":
       @[[NSNull null], @"item6", kTAGDataLayerObjectNotPresent, @{@"a": [NSNull null]}]}

dataLayer bao gồm:

   {
     "items": @[[NSNull null], @"item6", @"item2", @{@"a": [NSNull null], @"b": @"bValue"}]}
   }

Quá trình đẩ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ụ: với một vùng chứa có thẻ có quy tắc kích hoạt là "sự kiện" bằng với "openScreen", sau lần đẩy này:

   [dataLayer push:@{@"event", @"openScreen"}];

thẻ đó sẽ kích hoạt.

Hàm thành viên công khai

(void) pushValue:forKey:
 Đẩy một cặp khoá/giá trị vào lớp dữ liệu.
(void) push:
 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ùng với nội dung cập nhật (sau khi hợp nhất).
(NSObject *)- nhận:
 Trả về đối tượng trong mô hình được liên kết với khoá đã cho.

Tài liệu về hàm thành phần

– (vô hiệu) pushValue: (NSObject *) value
forKey: (NSObject *) khoá

Đẩy một cặp khoá/giá trị vào lớp dữ liệu.

Đây chỉ là một phương thức thuận tiện để gọi push:@{key: value}.

– (vô hiệu) push: (NSTừ đ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ùng với nội dung cập nhật (sau khi hợp nhất).

Các giá trị trong từ điển (hoặc Mảng được nhúng) thuộc loại NSNull thì hợp lệ. Nếu bạn muốn biểu thị một giá trị còn thiếu (chẳng hạn như một 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 lệnh đẩy, một lượt đẩy khác xảy ra từ cùng một luồng, thì lệnh đẩy thứ hai đó không đồng bộ (lệnh đẩy thứ hai sẽ trả về trước khi có thay đổi đối với lớp dữ liệu). Ví dụ: thao tác đẩy thứ hai này từ chính luồng đó có thể xảy ra, chẳng hạn như nếu thao tác đẩy lớp dữ liệu được thực hiện để phản hồi với một thẻ đang kích hoạt. Tuy nhiên, mọi bản cập nhật sẽ được xử lý trước khi trả về lệnh đẩy ngoài cùng.

Nếu update chứa khoá event, thì các quy tắc sẽ được đánh giá và các thẻ phù hợp sẽ kích hoạt.

Các tham số:
cập nhậtĐối tượng cập nhật cần xử lý
– (NSObject*) get: (NSString *) khoá

Trả về đối tượng trong mô hình được liên kết với khoá đã cho.

Nếu không có khoá, hàm trả về nil. Nếu có key nhưng NSNull sẽ trả về NSNull.

Khoá có thể có các dấu chấm được nhúng. Ví dụ: một khoá của "a.b.c" sẽ trả về giá trị của khoá "c" trong từ điển với khoá "b" trong từ điển với khoá "a" trong mô hình.