ภาพรวม
ชั้นข้อมูลคือพจนานุกรมที่มีข้อมูลทั่วไปเกี่ยวกับแอปพลิเคชัน
โดยจะใช้ชุดคีย์มาตรฐานเพื่อให้ทุกฝ่ายที่เข้าใจข้อกำหนดอ่านได้ มีการอัปเดตสถานะของชั้นข้อมูลผ่าน API เช่น แอปอาจเริ่มต้นด้วย dataLayer ต่อไปนี้
{
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 ไปยังชั้นข้อมูล ระบบจะประเมินกฎสำหรับแท็กและแท็กใดก็ตามที่ตรงกับเหตุการณ์นี้จะเริ่มทำงาน ตัวอย่างเช่น กำหนดให้คอนเทนเนอร์ที่มีแท็กซึ่งมีกฎการเริ่มทำงานเป็น "เหตุการณ์" เท่ากับ "openScreen" หลังพุชนี้
[dataLayer push:@{@"event", @"openScreen"}];
แท็กนั้นจะเริ่มทำงาน
ฟังก์ชันสมาชิกสาธารณะ | |
| (โมฆะ) | - pushValue:forKey: |
| พุชคู่คีย์/ค่าไปยังชั้นข้อมูล | |
| (โมฆะ) | - ข้อความ Push: |
ผสานออบเจ็กต์ update ที่ระบุเข้ากับโมเดลข้อมูลที่มีอยู่ โดยจะเรียกใช้ Listener ทั้งหมดด้วยการอัปเดต (หลังจากเกิดการผสานรวม) | |
| (NSObject *) | - รับ: |
| แสดงผลออบเจ็กต์ในโมเดลที่เชื่อมโยงกับคีย์ที่ระบุ | |
เอกสารประกอบเกี่ยวกับฟังก์ชันของสมาชิก
| - (void) pushValue: | (NSObject *) | value | |
| สำหรับคีย์: | (NSObject *) | คีย์ | |
พุชคู่คีย์/ค่าไปยังชั้นข้อมูล
วิธีนี้เป็นเพียงวิธีการอำนวยความสะดวกที่โทรติดต่อ push:@{key: value}
| - (โมฆะ) ข้อความ Push: | (NSDพจนานุกรม *) | อัปเดต |
ผสานออบเจ็กต์ update ที่ระบุเข้ากับโมเดลข้อมูลที่มีอยู่ โดยจะเรียกใช้ Listener ทั้งหมดด้วยการอัปเดต (หลังจากเกิดการผสานรวม)
ค่าในพจนานุกรม (หรืออาร์เรย์ที่ฝัง) ต้องเป็นประเภท NSNull ใช้ได้กับค่าในพจนานุกรม (หรืออาร์เรย์แบบฝัง) หากคุณต้องการแสดงค่าที่ขาดหายไป (เช่น ดัชนีว่างเปล่าในรายการ) ให้ใช้ออบเจ็กต์ kTAGDataLayerObjectNotPresent
โดยปกติจะเป็นการโทรแบบซิงโครนัส อย่างไรก็ตาม หากในขณะที่เทรดกำลังดำเนินการพุช การพุชอีกรายการเกิดขึ้นจากเทรดเดียวกัน การพุชครั้งที่ 2 จะเป็นแบบไม่พร้อมกัน (การพุชครั้งที่ 2 จะกลับมาก่อนที่การเปลี่ยนแปลงจะเกิดกับชั้นข้อมูล) การพุชครั้งที่ 2 นี้จากเทรดเดียวกันอาจเกิดขึ้น เช่น เมื่อมีการพุชชั้นข้อมูลเพื่อตอบสนองต่อการเริ่มทำงานของแท็ก อย่างไรก็ตาม การอัปเดตทั้งหมดจะได้รับการประมวลผลก่อนที่การกดด้านนอกสุดจะกลับมา
หาก update มีคีย์ event ระบบจะประเมินกฎและแท็กที่ตรงกันจะเริ่มทำงาน
- พารามิเตอร์
-
อัปเดต ออบเจ็กต์อัปเดตที่จะประมวลผล
| - (NSObject*) รับ: | (NSString *) | คีย์ |
แสดงผลออบเจ็กต์ในโมเดลที่เชื่อมโยงกับคีย์ที่ระบุ
หากไม่มีคีย์ จะแสดงผล nil หากมี key แต่ NSNull แสดงผล NSNull
คีย์อาจมีจุดแบบฝังได้ เช่น คีย์ "a.b.c" จะแสดงผลค่าของ "c" แป้น ในพจนานุกรมด้วยแป้น "b" ในพจนานุกรมโดยใช้คีย์ "a" ในโมเดล