Справочник по классу TAGDataLayer

Справочник по классу TAGDataLayer

Обзор

Уровень данных — это словарь, содержащий общую информацию о приложении.

Он использует стандартный набор ключей, поэтому его может прочитать любой человек, понимающий спецификацию. Состояние уровня данных обновляется через API. Например, приложение может начинаться со следующего слоя данных:

   {
     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"}];

этот тег сработает.

Открытые функции-члены

(пустота) - pushValue: forKey:
Передает пару ключ/значение на уровень данных.
(пустота) - толкать:
Объединяет данный объект update с существующей моделью данных, вызывая все прослушиватели с обновлением (после того, как произойдет слияние).
(НСОбъект *) - получать:
Возвращает объект модели, связанный с данным ключом.

Документация по функциям-членам

- (недействительно) pushValue: (НСОбъект *) ценить
для ключа: (НСОбъект *) ключ

Передает пару ключ/значение на уровень данных.

Это просто удобный метод, который вызывает push:@{key: value} .

- (недействительно) нажмите: (НССловарь *) обновлять

Объединяет данный объект update с существующей моделью данных, вызывая все прослушиватели с обновлением (после того, как произойдет слияние).

Допустимо, чтобы значения в словаре (или встроенных массивах) имели тип NSNull . Если вы хотите представить отсутствующее значение (например, пустой индекс в списке), используйте объект kTAGDataLayerObjectNotPresent .

Обычно это синхронный вызов. Однако если во время выполнения потока из того же потока происходит еще одно нажатие, то это второе нажатие является асинхронным (второе нажатие вернется до того, как на уровне данных будут внесены изменения). Это второе нажатие из того же потока может произойти, например, если нажатие уровня данных выполняется в ответ на активацию тега. Однако все обновления будут обработаны до возврата самого внешнего push-уведомления.

Если update содержит ключевое event , правила будут проверены и сработают соответствующие теги.

Параметры:
обновлять Объект обновления для обработки
- (NSObject*) получить: (НСтрока *) ключ

Возвращает объект модели, связанный с данным ключом.

Если ключ отсутствует, возвращает nil . Если key присутствует, но NSNull , возвращает NSNull .

Ключ может иметь встроенные точки. Например: ключ "abc" возвращает значение ключа «c» в словаре с ключом «b» в словаре с ключом «a» в модели.