Referencia de la clase TAGDataLayer

Referencia de la clase TAGDataLayer

Descripción general

La capa de datos es un diccionario que contiene información genérica sobre la aplicación.

Usa un conjunto estándar de claves para que pueda ser leído por cualquier parte que comprenda la especificación. El estado de la capa de datos se actualiza a través de su API. Por ejemplo, una app podría comenzar con la siguiente dataLayer:

   {
     title: "Original screen title"
   }

Como el estado o los datos de una aplicación pueden cambiar, esta puede actualizar el objeto dataLayer con una llamada como la siguiente:

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

Ahora la capa de datos contiene lo siguiente:

   {
     title: "New screen title"
   }

Después de otro envío:

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

dataLayer contiene lo siguiente:

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

En el siguiente ejemplo, se muestra cómo funciona la combinación de arrays y mapas. Si el objeto dataLayer original contiene lo siguiente:

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

Después de que se realiza este envío:

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

dataLayer contiene lo siguiente:

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

Los envíos ocurren de forma síncrona; después de ellos, los cambios se reflejan en el modelo.

Cuando se envía una clave event a la capa de datos, se evalúan las reglas de las etiquetas, y se activarán las etiquetas que coincidan con este evento. Por ejemplo, dado un contenedor con una etiqueta cuyas reglas de activación son que "event" es igual a "openScreen", después de este envío:

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

la etiqueta se activará.

Funciones públicas de miembro

(void) - pushValue:forKey:
 Envía un par clave-valor a la capa de datos.
(void) - push:
 Combina el objeto update determinado en el modelo de datos existente y llama a cualquier objeto de escucha con la actualización (después de la combinación).
(NSObject *)- get:
 Muestra el objeto en el modelo asociado con la clave determinada.

Documentación de las funciones de los miembros

- (void) pushValue: (NSObject *) value
forKey: (NSObject *) clave

Envía un par clave-valor a la capa de datos.

Este es solo un método de conveniencia que llama a push:@{key: value}.

- (vacío) push: (NSDictionary *) actualizar

Combina el objeto update determinado en el modelo de datos existente y llama a cualquier objeto de escucha con la actualización (después de la combinación).

Es válido que los valores en el diccionario (o los arrays incorporados) sean del tipo NSNull. Si deseas representar un valor faltante (como un índice vacío en una lista), usa el objeto kTAGDataLayerObjectNotPresent.

Esta suele ser una llamada síncrona. Sin embargo, si mientras el subproceso está ejecutando el envío, otro envío ocurre desde el mismo subproceso, entonces ese segundo envío es asíncrono (el segundo envío se realizará antes de que se realicen cambios en la capa de datos). Este segundo envío del mismo subproceso puede ocurrir, por ejemplo, si se realiza un envío de la capa de datos en respuesta a la activación de una etiqueta. Sin embargo, todas las actualizaciones se procesarán antes de que se devuelva el envío más externo.

Si update contiene la clave event, se evaluarán las reglas y se activarán las etiquetas coincidentes.

Parámetros:
updateEl objeto de actualización que se procesará
- (NSObject*) get: (NSString *) key

Muestra el objeto en el modelo asociado con la clave determinada.

Si la clave no está presente, muestra nil. Si key está presente, pero NSNull, muestra NSNull.

La clave puede tener puntos incorporados. Por ejemplo: una clave de "a.b.c" muestra el valor de la clave “c” en el diccionario con la clave “b” en el diccionario y la clave “a” en el modelo.