مرجع کلاس TAGDataLayer

مرجع کلاس TAGDataLayer

بررسی اجمالی

لایه داده یک فرهنگ لغت است که اطلاعات عمومی در مورد برنامه را در خود دارد.

از مجموعه ای استاندارد از کلیدها استفاده می کند تا برای هر طرفی که مشخصات را درک کند می تواند آن را بخواند. وضعیت لایه داده از طریق API آن به روز می شود. به عنوان مثال، یک برنامه ممکن است با dataLayer زیر شروع شود:

   {
     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
   }

مثال زیر نحوه ادغام آرایه و نقشه را نشان می دهد. اگر dataLayer اصلی حاوی:

   {
     "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"}];

آن برچسب شلیک می شود.

توابع اعضای عمومی

(خالی) - pushValue:forKey:
یک جفت کلید/مقدار را به لایه داده فشار می دهد.
(خالی) - فشار دادن:
شیء update داده‌شده را در مدل داده موجود ادغام می‌کند و هر شنونده‌ای را با به‌روزرسانی فراخوانی می‌کند (پس از ادغام).
(NSObject *) - گرفتن:
شیء موجود در مدل مرتبط با کلید داده شده را برمی گرداند.

مستندات عملکرد اعضا

- (باطل) pushValue: (NSObject *) ارزش
forKey: (NSObject *) کلید

یک جفت کلید/مقدار را به لایه داده فشار می دهد.

این فقط یک روش راحت است که push:@{key: value} را فراخوانی می‌کند.

- (باطل) فشار: (NSDictionary *) به روز رسانی

شیء update داده‌شده را در مدل داده موجود ادغام می‌کند و هر شنونده‌ای را با به‌روزرسانی فراخوانی می‌کند (پس از ادغام).

برای مقادیر موجود در فرهنگ لغت (یا آرایه های تعبیه شده) از نوع NSNull معتبر است. اگر می‌خواهید یک مقدار گمشده را نشان دهید (مانند یک فهرست خالی در یک لیست)، از شی kTAGDataLayerObjectNotPresent استفاده کنید.

این معمولا یک تماس همزمان است. با این حال، اگر در حالی که thread در حال اجرای فشار است، فشار دیگری از همان thread اتفاق می افتد، آن فشار دوم ناهمزمان است (فشار دوم قبل از ایجاد تغییرات در لایه داده برمی گردد). این فشار دوم از همان رشته می تواند رخ دهد، برای مثال، اگر یک فشار لایه داده در پاسخ به شلیک برچسب انجام شود. با این حال، تمام به روز رسانی ها قبل از بازگشت بیرونی ترین فشار پردازش می شوند.

اگر update حاوی event کلیدی باشد، قوانین ارزیابی می‌شوند و برچسب‌های منطبق فعال می‌شوند.

مولفه های:
به روز رسانی شی به روز رسانی برای پردازش
- (NSObject*) دریافت: (NSString *) کلید

شیء موجود در مدل مرتبط با کلید داده شده را برمی گرداند.

اگر کلید موجود نباشد، nil برمی‌گرداند. اگر key موجود باشد، اما NSNull ، NSNull را برمی‌گرداند.

کلید می تواند دوره های جاسازی شده داشته باشد. به عنوان مثال: یک کلید "abc" مقدار کلید "c" را در فرهنگ لغت با کلید "b" در فرهنگ لغت با کلید "a" در مدل برمی‌گرداند.