Omówienie
Warstwa danych to słownik z ogólnymi informacjami o aplikacji.
Wykorzystuje standardowy zestaw kluczy, dzięki czemu może go odczytać każdy podmiot rozumiejący specyfikację. Stan warstwy danych jest aktualizowany przez interfejs API. Aplikacja może na przykład zaczynać się od takiej tablicy dataLayer:
{
title: "Original screen title"
}
Gdy stan/dane aplikacji mogą się zmieniać, aplikacja może aktualizować dataLayer za pomocą takiego wywołania:
[dataLayer push:@{@"title": @"New screen title"}];
Teraz warstwa danych zawiera:
{
title: "New screen title"
}
Po kolejnym wypychaniu:
[dataLayer push:@{@"xyz": @3}];
Obiekt zawiera:
{
"title": "New screen title",
"xyz": 3
}
Poniższy przykład pokazuje, jak działa scalanie tablic i map. Jeśli pierwotna baza danych zawiera:
{
"items": @[@"item1", [NSNull null], @"item2", @{@"a": @"aValue", @"b": @"bValue"}]
}
Po przekazaniu tej wiadomości:
[dataLayer push:@{@"items":
@[[NSNull null], @"item6", kTAGDataLayerObjectNotPresent, @{@"a": [NSNull null]}]}
Obiekt zawiera:
{
"items": @[[NSNull null], @"item6", @"item2", @{@"a": [NSNull null], @"b": @"bValue"}]}
}
Wypchnięcia następuje synchronicznie. po przesłaniu zmiany zostały odzwierciedlone w modelu.
Po przekazaniu klucza event do warstwy danych oceniane są reguły tagów i uruchamiają się wszystkie tagi pasujące do tego zdarzenia. Na przykład dla kontenera z tagiem, którego regułą uruchamiania jest „zdarzenie” jest równa „openScreen” po tym przekazaniu:
[dataLayer push:@{@"event", @"openScreen"}];
który zostanie uruchomiony.
Publiczne funkcje członków | |
| (Nieważna) | – pushValue:forKey: |
| Przekazuje parę klucz-wartość do warstwy danych. | |
| (Nieważna) | – push: |
Scala dany obiekt update z istniejącym modelem danych, wywołując wszystkie detektory z aktualizacją (po scaleniu). | |
| (NSObject *) | - pobierz: |
| Zwraca obiekt w modelu powiązany z podanym kluczem. | |
Dokumentacja funkcji członków
| - (void) pushValue: | (NSObject *) | value | |
| forKey: | (NSObject *) | klucz | |
Przekazuje parę klucz-wartość do warstwy danych.
Jest to udogodnienie, które wywołuje metodę push:@{key: value}.
| – (void) push: | (NSDictionary *) | zaktualizuj |
Scala dany obiekt update z istniejącym modelem danych, wywołując wszystkie detektory z aktualizacją (po scaleniu).
Może być poprawny, jeśli wartości w słowniku (lub osadzonych tablicach) mają typ NSNull. Jeśli chcesz przedstawić brakującą wartość (np. pusty indeks na liście), użyj obiektu kTAGDataLayerObjectNotPresent.
Zazwyczaj jest to wywołanie synchroniczne. Jeśli jednak podczas wykonywania wątku kolejne wypchnięcie następuje z tego samego wątku, to drugie wypchnięcie jest asynchroniczne (drugie wypchnięcie wróci, zanim zmiany zostaną wprowadzone w warstwie danych). Drugie wypchnięcie z tego samego wątku może nastąpić, jeśli na przykład przekazanie warstwy danych nastąpi w odpowiedzi na uruchomienie tagu. Jednak wszystkie aktualizacje zostaną przetworzone przed najbardziej zewnętrznym zwrotem push.
Jeśli update zawiera klucz event, reguły zostaną ocenione i uruchomione zostaną pasujące tagi.
- Parametry:
-
update Obiekt aktualizacji do przetworzenia
| - (NSObject*) get: | (NSString *) | klucz |
Zwraca obiekt w modelu powiązany z podanym kluczem.
Jeśli klucza nie ma, zwraca nil. Jeśli key jest obecny, ale NSNull, zwraca NSNull.
Klucz może zawierać kropki. Na przykład: klucz "a.b.c" zwraca wartość „c”. klucz w słowniku z kluczem „b” w słowniku z kluczem „a” w modelu.