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 *) वैल्यू
forKey: (NSObject *) कुंजी

डेटा लेयर में कुंजी/वैल्यू के जोड़े को पुश करता है.

यह बस एक सुविधा पद्धति है, जिसमें push:@{key: value} को कॉल किया जाता है.

- (शून्य) push: (NSशब्दकोश *) अपडेट करें

यह विकल्प, दिए गए update ऑब्जेक्ट को मौजूदा डेटा मॉडल में मर्ज करता है. साथ ही, किसी लिसनर को अपडेट के साथ कॉल करता है (मर्ज होने के बाद).

यह शब्दकोश में मौजूद वैल्यू (या एम्बेड की गई कैटगरी) के लिए, NSNull टाइप की मान्य है. अगर आपको कोई ऐसी वैल्यू दिखानी है जो मौजूद नहीं है (जैसे कि किसी सूची में खाली इंडेक्स), तो kTAGDataLayerObjectNotPresent ऑब्जेक्ट का इस्तेमाल करें.

आम तौर पर, यह कॉल सिंक्रोनस कॉल होता है. हालांकि, अगर थ्रेड, पुश को एक्ज़ीक्यूट कर रहा है, तो उसी थ्रेड से दूसरा पुश किया जाता है. ऐसे में, दूसरा पुश एसिंक्रोनस होता है (डेटा लेयर में बदलाव होने से पहले, दूसरा पुश वापस मिल जाएगा). यह दूसरा पुश नोटिफ़िकेशन, उसी थ्रेड से हो सकता है. उदाहरण के लिए, अगर किसी टैग के ट्रिगर होने पर डेटा लेयर पुश किया जाता है. हालांकि, सभी अपडेट सबसे बाहरी पुश रिटर्न से पहले प्रोसेस किए जाएंगे.

अगर update में event कुंजी शामिल है, तो नियमों का आकलन किया जाएगा और मिलते-जुलते टैग फ़ायर हो जाएंगे.

पैरामीटर:
अपडेट करोप्रोसेस करने के लिए अपडेट ऑब्जेक्ट
- (NSObject*) get: (एनएसस्ट्रिंग *) कुंजी

दी गई कुंजी से जुड़े मॉडल में ऑब्जेक्ट की जानकारी देता है.

कुंजी मौजूद न होने पर, nil दिखाता है. अगर key मौजूद है, लेकिन NSNull मौजूद है, तो NSNull दिखाता है.

कुंजी में एम्बेड किए गए पीरियड हो सकते हैं. उदाहरण के लिए: "a.b.c" की कुंजी, शब्दकोश में "c" बटन की वैल्यू दिखाती है. ऐसी वैल्यू, डिक्शनरी में "b" बटन के साथ, मॉडल में "a" कुंजी की मदद से दिखती है.