بررسی اجمالی
لایه داده یک فرهنگ لغت است که اطلاعات عمومی در مورد برنامه را در خود دارد.
از مجموعه ای استاندارد از کلیدها استفاده می کند تا برای هر طرفی که مشخصات را درک کند می تواند آن را بخواند. وضعیت لایه داده از طریق 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" در مدل برمیگرداند.