概要
データレイヤーは、アプリケーションに関する一般的な情報を保持する辞書です。
標準の鍵セットを使用するため、仕様を理解しているすべての当事者が読み取ることができます。データレイヤーの状態は API を通じて更新されます。たとえば、アプリは次の dataLayer で開始される場合があります。
{ title: "Original screen title" }
アプリの状態やデータは変更される可能性があるため、アプリは次のような呼び出しで dataLayer を更新できます。
[dataLayer push:@{@"title": @"New screen title"}];
データレイヤには次のものが含まれます。
{ title: "New screen title" }
別の push が行われた後:
[dataLayer push:@{@"xyz": @3}];
dataLayer には以下が含まれます。
{ "title": "New screen title", "xyz": 3 }
次の例は、配列とマップの統合の仕組みを示しています。元のデータレイヤに以下が含まれている場合:
{ "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」に等しいタグを持つコンテナの場合、この push 後に次のように処理されます。
[dataLayer push:@{@"event", @"openScreen"}];
タグが配信されます。
パブリック メンバー関数 | |
(void) | - pushValue:forKey: |
Key-Value ペアをデータレイヤにプッシュします。 | |
(void) | - push: |
指定された update オブジェクトを既存のデータモデルにマージし、(マージ後に)更新をリスナーに呼び出します。 | |
(NSObject *) | - get: |
指定されたキーに関連付けられているモデル内のオブジェクトを返します。 |
メンバー関数のドキュメント
- (void) pushValue: | (NSObject *) | value | |
forKey: | (NSObject *) | キー | |
Key-Value ペアをデータレイヤにプッシュします。
これは、push:@{key: value}
を呼び出す便利なメソッドです。
- (void) push: | (NSDictionary *) | update |
指定された update
オブジェクトを既存のデータモデルにマージし、(マージ後に)更新をリスナーに呼び出します。
辞書(または埋め込まれた配列)内の値が NSNull
型であることは有効です。欠落値(リスト内の空のインデックスなど)を表すには、kTAGDataLayerObjectNotPresent
オブジェクトを使用します。
これは通常、同期呼び出しです。ただし、スレッドが push を実行している間に、同じスレッドから別の push が発生した場合、その 2 番目の push は非同期になります(2 番目の push は、データレイヤに変更が加えられる前に返されます)。同じスレッドから 2 回目のプッシュが行われるのは、タグの配信に応じてデータレイヤーのプッシュが行われた場合などです。ただし、すべての更新は、最も外側の push が返される前に処理されます。
update
にキー event
が含まれている場合、ルールが評価され、一致するタグが配信されます。
- パラメータ:
-
update 処理する更新オブジェクト
- (NSObject*) get: | (NSString *) | キー |
指定されたキーに関連付けられているモデル内のオブジェクトを返します。
キーが存在しない場合、nil
が返されます。key
は存在するが NSNull
の場合は、NSNull
を返します。
キーにピリオドを埋め込むことができます。たとえば、キー "a.b.c"
は、モデルでキー「a」を持つ辞書でキー「b」を持つ辞書内のキー「c」の値を返します。