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

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

ภาพรวม

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

โดยใช้ชุดคีย์มาตรฐานเพื่อให้ผู้ที่เข้าใจข้อกำหนดนี้อ่านได้ สถานะของชั้นข้อมูลจะอัปเดตผ่าน API เช่น แอปอาจเริ่มต้นด้วย dataLayer ต่อไปนี้

   {
     title: "Original screen title"
   }

เนื่องจากสถานะ/ข้อมูลของแอปสามารถเปลี่ยนแปลงได้ แอปจึงอัปเดตชั้นข้อมูลด้วยการเรียก เช่น

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

ขณะนี้ชั้นข้อมูลประกอบด้วย

   {
     title: "New screen title"
   }

เมื่อมีข้อความ Push เกิดขึ้นอีก ให้ทำดังนี้

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

dataLayer ประกอบด้วย

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

ตัวอย่างต่อไปนี้แสดงวิธีการทำงานของอาร์เรย์และการรวมแผนที่ หากชั้นข้อมูลเดิมมีสิ่งต่อไปนี้

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

สิ่งที่จะเกิดขึ้นหลังจากข้อความ Push เกิดขึ้น

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

dataLayer ประกอบด้วย

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

การพุชจะเกิดขึ้นพร้อมกัน หลังจากที่พุช การเปลี่ยนแปลงจะปรากฏในโมเดล

เมื่อพุชคีย์ event ไปยังชั้นข้อมูลจะได้รับการประเมินกฎสำหรับแท็กและแท็กทั้งหมดที่ตรงกับเหตุการณ์นี้จะเริ่มทำงาน เช่น ในกรณีของคอนเทนเนอร์ที่มีแท็กซึ่งมีกฎการเริ่มทำงานว่า "event" เท่ากับ "openScreen" หลังจากพุชนี้จะมีผลดังนี้

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

แท็กนั้นจะเริ่มทำงาน

ฟังก์ชันสมาชิกแบบสาธารณะ

(void) - pushValue:forKey:
 พุชคู่คีย์/ค่าไปยังชั้นข้อมูล
(void) - push:
 ผสานออบเจ็กต์ update ที่ระบุลงในโมเดลข้อมูลที่มีอยู่ ซึ่งจะเรียกใช้ Listener ที่มีการอัปเดต (หลังจากทำการผสานแล้ว)
(NSObject *)- รับ:
 แสดงผลออบเจ็กต์ในโมเดลที่เชื่อมโยงกับคีย์ที่ระบุ

เอกสารประกอบเกี่ยวกับฟังก์ชันสมาชิก

- (void) pushValue: (NSObject *) value
forKey: (NSObject *) คีย์

พุชคู่คีย์/ค่าไปยังชั้นข้อมูล

นี่เป็นเพียงวิธีอำนวยความสะดวกที่โทรไปที่ push:@{key: value}

- (เป็นโมฆะ) push: (พจนานุกรม NSD *) อัปเดต

ผสานออบเจ็กต์ update ที่ระบุลงในโมเดลข้อมูลที่มีอยู่ ซึ่งจะเรียกใช้ Listener ที่มีการอัปเดต (หลังจากทำการผสานแล้ว)

ค่านี้ใช้ได้สำหรับค่าในพจนานุกรม (หรืออาร์เรย์ที่ฝัง) เป็นประเภท NSNull หากต้องการแสดงค่าที่ขาดหายไป (เช่น ดัชนีที่ว่างเปล่าในรายการ) ให้ใช้ออบเจ็กต์ kTAGDataLayerObjectNotPresent

ซึ่งโดยปกติจะเป็นการเรียกแบบพร้อมกัน อย่างไรก็ตาม ขณะที่เทรดกำลังดำเนินการพุชอยู่ แต่มีพุชอีกรายการเกิดขึ้นจากเทรดเดียวกัน และพุชครั้งที่ 2 นั้นเป็นแบบไม่พร้อมกัน (การพุชครั้งที่ 2 จะแสดงผลก่อนที่จะมีการเปลี่ยนแปลงในชั้นข้อมูล) การพุชครั้งที่ 2 นี้จากเทรดเดียวกันอาจเกิดขึ้น เช่น เมื่อมีการพุชชั้นข้อมูลเพื่อตอบสนองต่อการเริ่มทํางานของแท็ก อย่างไรก็ตาม การอัปเดตทั้งหมดจะได้รับการประมวลผลก่อนที่การพุชด้านนอกสุดจะส่งคืน

หาก update มีคีย์ event ระบบจะประเมินกฎและแท็กที่ตรงกันจะเริ่มทำงาน

พารามิเตอร์:
อัปเดตออบเจ็กต์อัปเดตที่จะประมวลผล
- (NSObject*) get: (NSString *) คีย์

แสดงผลออบเจ็กต์ในโมเดลที่เชื่อมโยงกับคีย์ที่ระบุ

หากไม่มีคีย์ ระบบจะแสดงผล nil หากมี key อยู่ แต่ NSNull จะแสดงผลเป็น NSNull

คีย์อาจมีจุดที่ฝังอยู่ได้ ตัวอย่างเช่น คีย์ของ "a.b.c" จะแสดงผลค่าของคีย์ "c" ในพจนานุกรมพร้อมด้วยคีย์ "b" ในพจนานุกรมที่มีคีย์ "a" ในโมเดล