مرجع فئة TAGDataLayer

مرجع فئة TAGDataLayer

نظرة عامة

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

ويستخدم مجموعة عادية من المفاتيح حتى يتمكّن أي طرف من فهم المواصفات وقراءتها. يتم تعديل حالة طبقة البيانات من خلال واجهة برمجة التطبيقات الخاصة بها. على سبيل المثال، قد يبدأ أحد التطبيقات بطبقة البيانات التالية:

   {
     title: "Original screen title"
   }

وبما أنّه يمكن أن تتغيّر حالة أو بيانات أحد التطبيقات، يمكن للتطبيق تحديث dataLayer باستدعاء مثل:

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

تحتوي طبقة البيانات الآن على ما يلي:

   {
     title: "New screen title"
   }

بعد حدوث دفعة أخرى:

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

تحتوي طبقة البيانات على ما يلي:

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

يوضح المثال التالي كيفية عمل دمج الصفيفة والخريطة. إذا كانت طبقة البيانات الأصلية تحتوي على:

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

بعد إجراء عملية الدفع هذه:

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

تحتوي طبقة البيانات على ما يلي:

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

تحدث عمليات الدفع بشكل متزامن، وبعد الدفع، تظهر التغييرات في النموذج.

عند وضع مفتاح event في طبقة البيانات، يتم تقييم قواعد العلامات وسيتم تنشيط أي علامات تتطابق مع هذا الحدث. على سبيل المثال، في حاوية تحتوي على علامة قواعد تنشيطها هي أنّ "الحدث" يساوي "openScreen"، بعد هذا الإرسال:

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

سيتم تنشيط هذه العلامة.

وظائف الأعضاء العلنية

(void) ‫- pushValue:forKey:
 يدفع زوج المفتاح/القيمة إلى طبقة البيانات.
(void) - push:
 تدمج كائن update المحدّد في نموذج البيانات الحالي، مع استدعاء أي أدوات استماع مع التعديل (بعد حدوث الدمج).
(NSObject *) - get:
 لعرض العنصر في النموذج المرتبط بالمفتاح المحدّد.

مستندات الدالة المشترَكة

- (void) pushValue: (NSObject *)  value
forKey: (NSObject *)  مفتاح

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

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

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

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

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

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

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

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

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

في حال عدم توفّر المفتاح، يتم عرض nil. إذا كانت key متوفّرة، ولكن NSNull، يتم عرض NSNull.

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