بررسی اجمالی
کلاس کمکی برای باز کردن ظروف.
این یک بسته بندی در اطراف روش openContainerById:callback: (TAGManager) برای تماس گیرندگان است که از مهلت زمانی پشتیبانی می کند.
نمونه زیر نمونهای است که انتظار میرود تا 0.1 ثانیه برای بارگیری کانتینر قبل از بازگشت به کانتینر پیشفرض نشان داده شود:
NSTimeInterval timeout = 0.1; TagManager *tagManager = [TagManager instance]; TAGContainerFuture *future = [TAGContainerOpener openContainerWithId:@"GTM-XXXX" tagManager:tagManager openType:kTAGOpenTypePreferNonDefault timeout:&timeout]; TAGContainer *container = [future get];
اگر تماسگیرنده میخواهد بهطور ناهمزمان هنگام دردسترس بودن کانتینر مطلع شود، اما میخواهد بهطور دستی زمان وقفه را روی 0.5 ثانیه تعیین کند، تماسگیرنده باید TAGContainerOpenerNotifier را زیر کلاس قرار دهد، با openContainerWithId:tagManager:openType:timeouterOpenerNotifier تماس بگیرد. روی 0.5 تنظیم کنید و پیاده سازی را به containerAvailable اضافه کنید: (TAGContainerOpenerNotifier-p) برای مدیریت اعلان موجود در کانتینر.
توابع اعضای عمومی استاتیک | |
(id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
تا timeout ثانیه صبر می کند تا یک ظرف بارگیری شود (بسته به openType مشخص شده غیر پیش فرض یا تازه) و یک TAGContainerFuture برمی گرداند. | |
(خالی) | + openContainerWithId:tagManager:openType:timeout:notifier: |
تا timeout ثانیه منتظر می ماند تا یک کانتینر بارگیری شود (بسته به openType مشخص شده غیر پیش فرض یا تازه) و هنگامی که کانتینر در دسترس باشد، یک اعلان کننده را فراخوانی می کند. | |
(NSTtimeInterval) | + defaultTimeout |
مهلت زمانی پیشفرض برای درخواست کانتینر را برمیگرداند. |
مستندات عملکرد اعضا
+ (id< TAGContainerFuture >) openContainerWithId: | (NSString *) | شناسه کانتینر | |
TagManager: | ( TAGManager *) | TagManager | |
openType: | ( TAGOpenType ) | openType | |
تایم اوت: | (NSTtimeInterval *) | تایم اوت | |
تا timeout
ثانیه صبر می کند تا یک ظرف بارگیری شود (بسته به openType
مشخص شده غیر پیش فرض یا تازه) و یک TAGContainerFuture
برمی گرداند.
اگر نوع باز kTAGOpenTypePreferNonDefault
باشد، یک کانتینر غیر پیشفرض (ذخیره یا بازیابی شده از شبکه) بارگیری میشود و به محض اینکه یکی از موارد زیر رخ میدهد، TAGContainerFuture
رفع انسداد میشود:
- یک ظرف ذخیره شده بارگیری می شود.
- اگر ظرف ذخیره شده ای وجود نداشته باشد، یک کانتینر شبکه بارگیری می شود یا یک خطای شبکه رخ می دهد.
- تایمر منقضی می شود
اگر خطای شبکه رخ دهد یا تایمر منقضی شود، get (TAGContainerFuture-p) ممکن است یک ظرف پیشفرض را برگرداند.
اگر نوع باز kTAGOpenTypePreferFresh
باشد، یک کانتینر تازه (ذخیره شده یا بازیابی شده از شبکه) بارگیری می شود و به محض اینکه یکی از موارد زیر رخ دهد، TAGContainerFuture رفع انسداد می شود:
- یک ظرف تازه ذخیره شده بارگیری می شود.
- اگر کانتینر ذخیره شده ای وجود نداشته باشد یا کانتینر ذخیره شده قدیمی باشد، یک کانتینر شبکه بارگیری شده است یا یک خطای شبکه رخ می دهد.
- تایمر منقضی می شود
اگر خطای شبکه رخ دهد یا تایمر منقضی شود، get (TAGContainerFuture-p) ممکن است حاوی پیشفرضها یا یک محفظه ذخیره شده قدیمی باشد.
اگر برای بار دوم یکی از روشهای openContainer را با یک containerId
فراخوانی کنید، یک TAGContainerFuture
برگردانده میشود که دریافت آن (TAGContainerFuture-p) همان کانتینری را برمیگرداند که تماس اول انجام داد.
- مولفه های:
شناسه کانتینر شناسه کانتینر برای بارگیری. TagManager TAGManager برای گرفتن کانتینر. تایم اوت حداکثر ثانیه برای بارگیری ظرف از فروشگاه ذخیره شده. اگر صفر باشد، از defaultTimeout استفاده خواهد شد. openType انتخاب نحوه باز کردن ظرف.
- برمی گرداند:
- TAGContainerFuture که تا
timeout
منتظر می ماند و زمانی که ظرف در دسترس بود، آن را برمی گرداند.
+ (void) openContainerWithId: | (NSString *) | شناسه کانتینر | |
TagManager: | ( TAGManager *) | TagManager | |
openType: | ( TAGOpenType ) | openType | |
تایم اوت: | (NSTtimeInterval *) | تایم اوت | |
اطلاع دهنده: | (id< TAGContainerOpenerNotifier >) | اطلاع دهنده | |
تا timeout
ثانیه منتظر می ماند تا یک کانتینر بارگیری شود (بسته به openType
مشخص شده غیر پیش فرض یا تازه) و هنگامی که کانتینر در دسترس باشد، یک اعلان کننده را فراخوانی می کند.
اگر نوع باز kTAGOpenTypePreferNonDefault
باشد، یک کانتینر غیر پیشفرض (ذخیره یا بازیابی شده از شبکه) بارگیری میشود و به اطلاعدهنده ارسال میشود. به محض اینکه یکی از موارد زیر رخ دهد، اعلان کننده فراخوانی می شود:
- یک ظرف ذخیره شده بارگیری می شود.
- اگر ظرف ذخیره شده ای وجود نداشته باشد، یک کانتینر شبکه بارگیری می شود یا یک خطای شبکه رخ می دهد.
- تایمر منقضی می شود
اگر خطای شبکه رخ دهد یا تایمر منقضی شود، کانتینری که به اطلاعدهنده منتقل میشود یک ظرف پیشفرض است.
اگر نوع باز kTAGOpenTypePreferFresh
باشد، یک کانتینر تازه (ذخیره شده یا بازیابی شده از شبکه) بارگیری می شود و به اطلاع دهنده ارسال می شود. به محض اینکه یکی از موارد زیر رخ دهد، اعلان کننده فراخوانی می شود:
- یک ظرف تازه ذخیره شده بارگیری می شود.
- اگر کانتینر ذخیره شده ای وجود نداشته باشد یا کانتینر ذخیره شده قدیمی باشد، یک کانتینر شبکه بارگیری شده است یا یک خطای شبکه رخ می دهد.
- تایمر منقضی می شود
اگر خطای شبکه رخ دهد یا تایمر منقضی شود، محفظه ارسال شده به اعلان کننده ممکن است حاوی موارد پیش فرض یا یک محفظه ذخیره شده قدیمی باشد.
اگر یکی از متدهای openContainer را برای بار دوم با یک containerId
معین فراخوانی کنید، همان کانتینری که از تماس قبلی برگردانده شده است به محض اینکه در دسترس قرار گرفت به اطلاع دهنده منتقل می شود.
- مولفه های:
شناسه کانتینر شناسه کانتینر برای بارگیری. TagManager TAGManager برای دریافت کانتینر استفاده کرد. openType انتخاب نحوه باز کردن ظرف. تایم اوت حداکثر ثانیه برای بارگیری ظرف از فروشگاه ذخیره شده. اگر صفر باشد، از defaultTimeout استفاده خواهد شد. اطلاع دهنده یک اعلان کننده اختیاری که وقتی کانتینر در دسترس باشد فراخوانی می شود. در صورت موجود بودن و بارگیری قبل از اتمام زمان، با ظرف تازه فراخوانی می شود. در غیر این صورت با یک ظرف غیر تازه نامیده می شود. توجه داشته باشید که اعلان کننده ممکن است از یک رشته دیگر فراخوانی شود.
+ (NSTimeInterval) defaultTimeout |
مهلت زمانی پیشفرض برای درخواست کانتینر را برمیگرداند.
- برمی گرداند:
- مهلت زمانی پیشفرض در چند ثانیه