Riferimento per le classi TAGDatalayer

Riferimento classe TAGDatalayer

Panoramica

Il livello dati è un dizionario contenente informazioni generiche sull'applicazione.

Utilizza un set di chiavi standard in modo che possa essere letto da qualsiasi parte che comprende la specifica. Lo stato del livello dati viene aggiornato tramite la relativa API. Ad esempio, un'app potrebbe iniziare con il seguente dataLayer:

   {
     title: "Original screen title"
   }

Poiché lo stato/i dati di un'app possono cambiare, l'app può aggiornare il dataLayer con una chiamata del tipo:

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

Ora il livello dati contiene:

   {
     title: "New screen title"
   }

Dopo un altro push:

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

Il dataLayer contiene:

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

L'esempio seguente mostra come funziona l'unione di array e mappe. Se il dataLayer originale contiene:

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

Dopo il push:

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

Il dataLayer contiene:

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

I push avvengono in modo sincrono; dopo il push, le modifiche sono state applicate al modello.

Quando una chiave event viene inviata al livello dati, vengono valutate le regole per i tag e vengono attivati i tag corrispondenti a questo evento. Ad esempio, in un contenitore con un tag le cui regole di attivazione sono "evento" è uguale a "openScreen", dopo questo push:

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

il tag si attiverà.

Funzioni per i membri pubbliche

(nullo)- pushValue:forKey:
 Invia una coppia chiave/valore al livello dati.
(nullo)- push:
 Unisce l'oggetto update specificato nel modello dei dati esistente, chiamando qualsiasi listener con l'aggiornamento (dopo l'unione).
(NSObject *)- get:
 Restituisce l'oggetto nel modello associato alla chiave specificata.

Documentazione sulle funzioni dei membri

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

Invia una coppia chiave/valore al livello dati.

Questo è solo un metodo pratico che chiama push:@{key: value}.

- (void) push: (NSDictionary *) aggiorna

Unisce l'oggetto update specificato nel modello dei dati esistente, chiamando qualsiasi listener con l'aggiornamento (dopo l'unione).

È valido che i valori nel dizionario (o negli array incorporati) siano di tipo NSNull. Se vuoi rappresentare un valore mancante (come un indice vuoto in un elenco), utilizza l'oggetto kTAGDataLayerObjectNotPresent.

In genere si tratta di una chiamata sincrona. Tuttavia, se, mentre il thread esegue il push, viene effettuato un altro push dallo stesso thread, il secondo push è asincrono (il secondo push tornerà indietro prima che siano state apportate modifiche al livello dati). Questo secondo push dallo stesso thread può avvenire, ad esempio, se viene eseguito un push del livello dati in risposta all'attivazione di un tag. Tuttavia, tutti gli aggiornamenti verranno elaborati prima che venga restituito il push più esterno.

Se update contiene la chiave event, le regole verranno valutate e i tag corrispondenti verranno attivati.

Parametri:
updateL'oggetto di aggiornamento da elaborare
- (NSObject*) get: (NSString *) chiave

Restituisce l'oggetto nel modello associato alla chiave specificata.

Se la chiave non è presente, restituisce nil. Se key è presente, ma NSNull, restituisce NSNull.

La chiave può avere punti incorporati. Ad esempio: una chiave di "a.b.c" restituisce il valore di "c" tasto nel dizionario con il tasto "b" nel dizionario con il tasto "a" nel modello.