TAGDataLayer 類別參考資料

TAGDataLayer 類別參考資料

總覽

資料層是存放應用程式一般資訊的字典,

這項功能使用一組標準的金鑰,因此瞭解規格的任何第三方都能讀取。資料層狀態會透過其 API 更新。比方說,應用程式開頭可能是下列 dataLayer:

   {
     title: "Original screen title"
   }

應用程式的狀態/資料可能會變更,因此應用程式可透過以下呼叫更新 dataLayer:

   [dataLayer push:@{@"title": @"New screen title"}];

現在資料層包含:

   {
     title: "New screen title"
   }

再次推送發生後:

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

dataLayer 包含:

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

以下範例說明陣列與地圖合併的運作方式。如果原始 dataLayer 包含:

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

推送完成後:

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

dataLayer 包含:

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

推送作業會同步進行;推送完成後,模型中已反映變更。

event 鍵推送至資料層時,系統會評估代碼的規則,並觸發與這個事件相符的所有代碼。舉例來說,假設有個容器有觸發規則的代碼,在執行此推送後,「event」等於「openScreen」:

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

該代碼將觸發

公開成員函式

(void) - pushValue:forKey:
 將鍵/值組合推送到資料層。
(void) - push:
 將指定 update 物件合併至現有資料模型,利用更新呼叫任何事件監聽器 (合併後)。
(NSObject *)- get:
 傳回與指定鍵相關聯的模型中的物件。

成員函式說明文件

- (void)PushValue: (NSObject *) value
forKey: (NSObject *) key

將鍵/值組合推送到資料層。

這只是呼叫 push:@{key: value} 的便利方法。

- (void) push: (NSDictionary *) 更新

將指定 update 物件合併至現有資料模型,利用更新呼叫任何事件監聽器 (合併後)。

字典 (或內嵌陣列) 的值屬於 NSNull 類型。如要表示遺漏值 (例如清單中的空白索引),請使用 kTAGDataLayerObjectNotPresent 物件。

這通常是同步呼叫。然而,如果在執行緒執行推送時,又從同一執行緒進行另一項推送,則第二個推送為非同步 (變更資料層前會傳回第二次推送)。舉例來說,如果系統為了回應代碼觸發而推送資料層,就會從同一執行緒執行第二次推送。不過,系統會在最外側推送傳回前處理所有更新。

如果 update 包含 event 鍵,系統會評估規則並觸發相符的代碼。

參數:
update要處理的更新物件
- (NSObject*) get: (NSString *) key

傳回與指定鍵相關聯的模型中的物件。

如果沒有鍵,則傳回 nil。如果 key 存在,但 NSNull 就會傳回 NSNull

金鑰可以有內嵌的句點。例如:"a.b.c" 的鍵會傳回字典中「c」鍵的值,而字典中是「b」鍵,且索引鍵為「a」。