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 鍵推送至資料層時,系統會評估代碼規則,並觸發所有與這個事件相符的代碼。舉例來說,假設容器中的代碼觸發規則為「事件」在這個推送之後,等於「openScreen」:

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

該代碼就會觸發

公開成員函式

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

成員職能說明文件

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

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

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

- (void) push: (字典 *) 更新

將指定的 update 物件合併至現有資料模型,並呼叫任何包含更新的事件監聽器 (合併發生後)。

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

這通常為同步呼叫。但是,如果執行緒執行推送作業時,另一個推送作業是來自相同的執行緒,則第二次推送作業就會以非同步方式執行 (第二次推送作業會在對資料層進行變更前傳回)。舉例來說,如果為回應代碼觸發而推送資料層,就會觸發來自相同執行緒的第二次推送。不過,所有更新處理作業都會在最外側推送傳回前處理。

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

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

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

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

鍵可以包含內嵌句點。例如:"a.b.c" 的鍵會傳回「c」的值。字典中鍵為「b」鍵找到含有「a」鍵的字典模型中