ওভারভিউ
ডেটা স্তর হল একটি অভিধান যা অ্যাপ্লিকেশন সম্পর্কে জেনেরিক তথ্য ধারণ করে।
এটি কীগুলির একটি মানক সেট ব্যবহার করে যাতে স্পেসিফিকেশন বুঝতে পারে এমন যেকোনো পক্ষ এটি পড়তে পারে। ডাটা লেয়ার স্টেট এর API এর মাধ্যমে আপডেট করা হয়। উদাহরণস্বরূপ, একটি অ্যাপ নিম্নলিখিত ডেটা লেয়ার দিয়ে শুরু হতে পারে:
{ title: "Original screen title" }
যেহেতু একটি অ্যাপের অবস্থা/ডেটা পরিবর্তন হতে পারে, অ্যাপটি একটি কলের মাধ্যমে ডেটা লেয়ার আপডেট করতে পারে যেমন:
[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
কী ডেটা স্তরে পুশ করা হয়, তখন ট্যাগগুলির নিয়মগুলি মূল্যায়ন করা হয় এবং এই ইভেন্টের সাথে মিলে যাওয়া যেকোন ট্যাগগুলি ফায়ার হবে৷ উদাহরণস্বরূপ, একটি ট্যাগ সহ একটি ধারক দেওয়া হয়েছে যার ফায়ারিং নিয়ম হল যে "ইভেন্ট" "ওপেনস্ক্রিন" এর সমান, এই পুশের পরে:
[dataLayer push:@{@"event", @"openScreen"}];
যে ট্যাগ আগুন হবে.
পাবলিক সদস্য ফাংশন | |
(অকার্যকর) | - pushValue:forKey: |
ডেটা স্তরে একটি কী/মান জোড়া ঠেলে দেয়। | |
(অকার্যকর) | - ধাক্কা: |
প্রদত্ত update অবজেক্টকে বিদ্যমান ডেটা মডেলে মার্জ করে, যেকোন শ্রোতাকে আপডেটের সাথে কল করে (একত্রীকরণ হওয়ার পরে)। | |
(এনএসওবজেক্ট *) | - পাওয়া: |
প্রদত্ত কী-এর সাথে যুক্ত মডেলের বস্তুটি ফেরত দেয়। |
সদস্য ফাংশন ডকুমেন্টেশন
- (অকার্যকর) পুশ ভ্যালু: | (এনএসওবজেক্ট *) | মান | |
forKey: | (এনএসওবজেক্ট *) | চাবি | |
ডেটা স্তরে একটি কী/মান জোড়া ঠেলে দেয়।
এটি শুধুমাত্র একটি সুবিধাজনক পদ্ধতি যা কল করে push:@{key: value}
।
- (অকার্যকর) ধাক্কা: | (NSD অভিধান *) | হালনাগাদ |
প্রদত্ত update
অবজেক্টকে বিদ্যমান ডেটা মডেলে মার্জ করে, যেকোন শ্রোতাকে আপডেটের সাথে কল করে (একত্রীকরণ হওয়ার পরে)।
NSNull
টাইপ হওয়া অভিধানে (বা এমবেড করা অ্যারে) মানগুলির জন্য এটি বৈধ। আপনি যদি একটি অনুপস্থিত মান উপস্থাপন করতে চান (যেমন একটি তালিকায় একটি খালি সূচক), kTAGDataLayerObjectNotPresent
অবজেক্ট ব্যবহার করুন।
এটি সাধারণত একটি সিঙ্ক্রোনাস কল। যাইহোক, যদি, থ্রেডটি পুশ চালানোর সময়, একই থ্রেড থেকে আরেকটি পুশ ঘটে, তাহলে সেই দ্বিতীয় পুশটি অ্যাসিঙ্ক্রোনাস হয় (ডেটা স্তরে পরিবর্তন করার আগে দ্বিতীয় পুশটি ফিরে আসবে)। একই থ্রেড থেকে এই দ্বিতীয় পুশ ঘটতে পারে, উদাহরণস্বরূপ, যদি ট্যাগ ফায়ারিংয়ের প্রতিক্রিয়া হিসাবে একটি ডেটা স্তর পুশ করা হয়। যাইহোক, বহিরাগত পুশ রিটার্নের আগে সমস্ত আপডেট প্রক্রিয়া করা হবে।
যদি update
মূল event
থাকে, তবে নিয়মগুলি মূল্যায়ন করা হবে এবং মিলিত ট্যাগগুলি ফায়ার হবে৷
- পরামিতি:
হালনাগাদ প্রক্রিয়া করার জন্য আপডেট অবজেক্ট
- (এনএসওবজেক্ট*) পান: | (NSString *) | চাবি |
প্রদত্ত কী-এর সাথে যুক্ত মডেলের বস্তুটি ফেরত দেয়।
কী উপস্থিত না থাকলে, nil
ফেরত দেয়। যদি key
উপস্থিত থাকে তবে NSNull
, NSNull
প্রদান করে।
কী এম্বেডেড পিরিয়ড থাকতে পারে। উদাহরণস্বরূপ: "abc"
এর একটি কী মডেলের "a" কী সহ অভিধানে "b" কী সহ অভিধানে "c" কীটির মান প্রদান করে।