مرجع فئة TAGDataLayer

مرجع فئة TAGDataLayer

نظرة عامة

طبقة البيانات هي قاموس يحتوي على معلومات عامة حول التطبيق.

وهو يستخدم مجموعة قياسية من المفاتيح حتى يتمكن أي طرف يفهم المواصفات. يتم تعديل حالة طبقة البيانات من خلال واجهة برمجة التطبيقات الخاصة بها. على سبيل المثال، قد يبدأ أحد التطبيقات بطبقة 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:
 يدفع زوج المفتاح/القيمة إلى طبقة البيانات.
(مُلغاة)- الإشعارات الفورية:
 تدمج كائن update المحدّد في نموذج البيانات الحالي، مع استدعاء أي أدوات استماع مع التعديل (بعد حدوث الدمج).
(NSObject *)- الحصول على:
 تعرض الكائن في النموذج المرتبط بالمفتاح المحدد.

المستندات الخاصة بوظائف الأعضاء

- (بدون) PushValue: (NSObject *) value
forKey: (NSObject *) مفتاح

يدفع زوج المفتاح/القيمة إلى طبقة البيانات.

هذه مجرد طريقة ملائمة تستدعي push:@{key: value}.

- (بدون) الإشعارات: (NSDictionary *) تعديل

تدمج كائن update المحدّد في نموذج البيانات الحالي، مع استدعاء أي أدوات استماع مع التعديل (بعد حدوث الدمج).

صالحة أن تكون القيم في القاموس (أو الصفائف المضمّنة) من النوع NSNull. إذا أردت تمثيل قيمة ناقصة (مثل فهرس فارغ في قائمة)، استخدِم العنصر kTAGDataLayerObjectNotPresent.

وعادة ما تكون هذه مكالمة متزامنة. ومع ذلك، إذا كانت عملية الدفع هذه أثناء تنفيذ سلسلة التعليمات لعملية الإرسال، فقد حدث إرسال آخر من نفس سلسلة المحادثات، فستكون هذه الدفعة الثانية غير متزامنة (ستتم عملية الإرسال الثانية قبل إجراء التغييرات على طبقة البيانات). ويمكن أن تحدث عملية الإرسال الثانية هذه من سلسلة المحادثات نفسها، على سبيل المثال، إذا تم دفع طبقة بيانات استجابةً لتنشيط علامة. ومع ذلك، ستتم معالجة جميع التعديلات قبل ظهور عملية إرسال البيانات الخارجية.

إذا كانت قيمة update تحتوي على المفتاح event، سيتم تقييم القواعد وتنشيط العلامات المطابقة.

المَعلمات:
تحديثعنصر التحديث المطلوب معالجته
- (NSObject*) get: (NSString *) مفتاح

تعرض الكائن في النموذج المرتبط بالمفتاح المحدد.

في حال عدم توفُّر المفتاح، يتم عرض nil. في حال توفّر السمة key وعرض السمة NSNull، سيتم عرض السمة NSNull.

يمكن أن يشتمل المفتاح على نقاط مُضمَّنة. على سبيل المثال: يعرض المفتاح "a.b.c" قيمة الحرف "c". مفتاح في القاموس بالمفتاح "b" في القاموس بالمفتاح "a" في النموذج.