TAGการอ้างอิงคลาส DataLayer

การอ้างอิงคลาส TAGDataLayer

ภาพรวม

ชั้นข้อมูลคือพจนานุกรมที่มีข้อมูลทั่วไปเกี่ยวกับแอปพลิเคชัน

โดยจะใช้ชุดคีย์มาตรฐานเพื่อให้ทุกฝ่ายที่เข้าใจข้อกำหนดอ่านได้ มีการอัปเดตสถานะของชั้นข้อมูลผ่าน 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" ในโมเดล