مرجع فئة 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"}];

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

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

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

وثائق وظائف الأعضاء

- (void) PushValue: (NSObject *) value
لمفتاح: (NSObject *) مفتاح

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

هذه الطريقة هي فقط وسيلة ملائمة لطلب push:@{key: value}.

- (باطل) push: (NSDictionary *) تعديل

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

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

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

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

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

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

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

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