Genel bakış
Veri katmanı, uygulama hakkında genel bilgileri içeren bir sözlüktür.
Bu özellik, standart bir anahtar grubu kullandığından teknik özellikleri anlayan herhangi bir tarafça okunabilir. Veri katmanı durumu, API'si aracılığıyla güncellenir. Örneğin, bir uygulama şu dataLayer ile başlayabilir:
{ title: "Original screen title" }
Bir uygulamanın durumu/verileri değişebileceğinden, uygulama dataLayer'ı aşağıdaki gibi bir çağrıyla güncelleyebilir:
[dataLayer push:@{@"title": @"New screen title"}];
Artık veri katmanı şunları içeriyor:
{ title: "New screen title" }
Başka bir aktarma sonrasında:
[dataLayer push:@{@"xyz": @3}];
dataLayer şunları içerir:
{ "title": "New screen title", "xyz": 3 }
Aşağıdaki örnekte, dizi ve harita birleştirmenin nasıl çalıştığı gösterilmektedir. Orijinal dataLayer şunları içeriyorsa:
{ "items": @[@"item1", [NSNull null], @"item2", @{@"a": @"aValue", @"b": @"bValue"}] }
Bu aktarma yapıldıktan sonra:
[dataLayer push:@{@"items": @[[NSNull null], @"item6", kTAGDataLayerObjectNotPresent, @{@"a": [NSNull null]}]}
dataLayer şunları içerir:
{ "items": @[[NSNull null], @"item6", @"item2", @{@"a": [NSNull null], @"b": @"bValue"}]} }
İtme işlemleri eşzamanlı olarak gerçekleşir. Aktarma işleminden sonra değişiklikler modele yansıtılır.
Bir event
anahtarı veri katmanına aktarıldığında, etiketler için kurallar değerlendirilir ve bu etkinlikle eşleşen tüm etiketler tetiklenir. Örneğin, tetikleme kuralları "event" değeri "openScreen"a eşit olan bir etikete sahip kapsayıcı verildiğinde aşağıdaki aktarma işleminden sonra:
[dataLayer push:@{@"event", @"openScreen"}];
bu etiket etkinleşir.
Herkese Açık Üye İşlevleri | |
(void) | - pushValue:forKey: |
Veri katmanına bir anahtar/değer çifti aktarır. | |
(void) | - push: |
Belirtilen update nesnesini mevcut veri modeliyle birleştirir ve güncellemeyle birlikte (birleştirme tamamlandıktan sonra) tüm işleyicileri çağırır. | |
(NSObject *) | - get: |
Belirtilen anahtarla ilişkili modeldeki nesneyi döndürür. |
Üye İşlevi Belgeleri
- (void) pushValue: | (NSObject *) | value | |
forKey: | (NSObject *) | anahtar | |
Veri katmanına bir anahtar/değer çifti aktarır.
Bu yalnızca push:@{key: value}
işlevini çağıran bir kolaylık yöntemidir.
- (geçersiz) push: | (NSDictionary *) | güncelleme |
Belirtilen update
nesnesini mevcut veri modeliyle birleştirir ve güncellemeyle birlikte (birleştirme tamamlandıktan sonra) tüm işleyicileri çağırır.
Sözlükte (veya yerleştirilmiş dizilerdeki) değerlerin NSNull
türünde olması gerekir. Eksik bir değeri (Listedeki boş bir dizin gibi) temsil etmek istiyorsanız kTAGDataLayerObjectNotPresent
nesnesini kullanın.
Bu genellikle eşzamanlı bir çağrıdır. Bununla birlikte, iş parçacığı aktarma işlemini yürütürken aynı iş parçacığından başka bir aktarma gerçekleşirse bu ikinci aktarma eşzamansız olur (ikinci aktarma, veri katmanında değişiklik yapılmadan önce geri döner). Örneğin, bir etiketin tetiklenmesine yanıt olarak bir veri katmanı aktarımı yapılırsa aynı iş parçacığından bu ikinci aktarma gerçekleşebilir. Ancak tüm güncellemeler, en dıştaki aktarma geri gelmeden önce işlenir.
update
, event
anahtarını içeriyorsa kurallar değerlendirilir ve eşleşen etiketler tetiklenir.
- Parametreler:
-
update İşlenecek güncelleme nesnesi
- (NSObject*) get: | (NSString *) | anahtar |
Belirtilen anahtarla ilişkili modeldeki nesneyi döndürür.
Anahtar mevcut değilse nil
değerini döndürür. key
mevcutsa ancak NSNull
varsa NSNull
değerini döndürür.
Anahtarda yerleşik noktalar olabilir. Örneğin: "a.b.c"
anahtarı, sözlükte "b" anahtarını ve modelde "a" anahtarını içeren "c" anahtarının değerini döndürür.