ภาพรวม
คลาสตัวช่วยในการเปิดคอนเทนเนอร์
นี่คือ Wrapper ของเมธอด 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:timeout:notifier: (TAGContainerOpener) โดยมีระยะหมดเวลาเป็น 0.5 และเพิ่มการใช้งานลงใน container-Container การแจ้งเตือนที่มีอยู่: (TAG-ContainerNothandling)
ฟังก์ชันสมาชิกสาธารณะแบบคงที่ | |
(รหัส< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
รอไม่เกิน timeout วินาทีเพื่อให้คอนเทนเนอร์โหลด (ไม่ใช่ค่าเริ่มต้นหรือความใหม่ขึ้นอยู่กับ openType ที่ระบุ) แล้วแสดงผล TAGContainerFuture | |
(โมฆะ) | + openContainerWithId:tagManager:openType:timeout:notifier: |
รอไม่เกิน timeout วินาทีเพื่อให้คอนเทนเนอร์โหลดเสร็จสมบูรณ์ (ไม่ใช่ค่าเริ่มต้นหรือความใหม่ขึ้นอยู่กับ openType ที่ระบุ) และเรียกเครื่องมือแจ้งเตือนเมื่อคอนเทนเนอร์พร้อมใช้งาน | |
(ช่วงเวลา NSTime) | + defaultTimeout |
แสดงการหมดเวลาเริ่มต้นสำหรับการขอคอนเทนเนอร์ |
เอกสารประกอบเกี่ยวกับฟังก์ชันของสมาชิก
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
TagManager: | (TAGManager *) | tagManager | |
เปิดประเภท: | (TAGOpenType) | openType | |
หมดเวลา: | (NSTimeInterval *) | หมดเวลา | |
รอไม่เกิน timeout
วินาทีเพื่อให้คอนเทนเนอร์โหลด (ไม่ใช่ค่าเริ่มต้นหรือรีเฟรชตาม openType
ที่ระบุ) แล้วแสดงผล TAGContainerFuture
หากประเภทแบบเปิดคือ kTAGOpenTypePreferNonDefault
ระบบจะโหลดคอนเทนเนอร์ที่ไม่ใช่ค่าเริ่มต้น (บันทึกหรือดึงข้อมูลจากเครือข่าย) และจะไม่เลิกบล็อก TAGContainerFuture
ทันทีที่เกิดเหตุการณ์ใดเหตุการณ์หนึ่งต่อไปนี้
- ระบบจะโหลดคอนเทนเนอร์ที่บันทึกไว้
- หากไม่มีคอนเทนเนอร์ที่บันทึกไว้ แสดงว่าคอนเทนเนอร์เครือข่ายโหลดขึ้นหรือเกิดข้อผิดพลาดของเครือข่าย
- การจับเวลานั้นหมดอายุ
หากเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือหมดเวลา ระบบ get (TAGContainerFuture-p) อาจแสดงผลคอนเทนเนอร์เริ่มต้น
หากประเภทเปิดคือ kTAGOpenTypePreferFresh
ระบบจะโหลดคอนเทนเนอร์ใหม่ (บันทึกหรือดึงข้อมูลจากเครือข่าย) และยกเลิกการบล็อก TAGContainerFuture ทันทีที่เกิดเหตุการณ์ใดกรณีหนึ่งต่อไปนี้
- คอนเทนเนอร์ใหม่ที่บันทึกไว้จะโหลดขึ้น
- หากไม่มีคอนเทนเนอร์ที่บันทึกไว้หรือคอนเทนเนอร์ที่บันทึกไว้ไม่ใช่การอัปเดต แสดงว่าคอนเทนเนอร์เครือข่ายโหลดขึ้นหรือเกิดข้อผิดพลาดเกี่ยวกับเครือข่าย
- การจับเวลานั้นหมดอายุ
หากเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือตัวจับเวลาหมดอายุลง get (TAGContainerFuture-p) อาจมีค่าเริ่มต้นหรือคอนเทนเนอร์ที่บันทึกไว้ซึ่งไม่มีการอัปเดต
หากคุณเรียกหนึ่งในเมธอด OpenContainer เป็นครั้งที่ 2 ด้วย containerId
ที่ระบุ ระบบจะแสดงผล TAGContainerFuture
ซึ่ง get (TAGContainerFuture-p) จะแสดงผลคอนเทนเนอร์เดียวกับการเรียกครั้งแรก
- พารามิเตอร์
-
containerId รหัสของคอนเทนเนอร์ที่จะโหลด tagManager TAGManager สำหรับรับคอนเทนเนอร์ เวลานอก จำนวนวินาทีสูงสุดที่ต้องรอโหลดคอนเทนเนอร์จากร้านค้าที่บันทึกไว้ หากเป็น nil ระบบจะใช้ defaultTimeout openType ตัวเลือกในการเปิดคอนเทนเนอร์
- การคืนสินค้า:
- TAGContainerFuture ที่จะรอจนถึง
timeout
และส่งคืนคอนเทนเนอร์เมื่อพร้อมใช้งาน
+ (โมฆะ) openContainerWithId: | (NSString *) | containerId | |
TagManager: | (TAGManager *) | tagManager | |
เปิดประเภท: | (TAGOpenType) | openType | |
หมดเวลา: | (NSTimeInterval *) | หมดเวลา | |
ตัวแจ้งเตือน: | (รหัส< TAGContainerOpenerNotifier >) | เครื่องมือแจ้งเตือน | |
รอไม่เกิน timeout
วินาทีเพื่อให้คอนเทนเนอร์โหลดเสร็จสมบูรณ์ (ไม่ใช่ค่าเริ่มต้นหรือความใหม่ขึ้นอยู่กับ openType
ที่ระบุ) และเรียกเครื่องมือแจ้งเตือนเมื่อคอนเทนเนอร์พร้อมใช้งาน
หากประเภทแบบเปิดคือ kTAGOpenTypePreferNonDefault
ระบบจะโหลดคอนเทนเนอร์ที่ไม่ใช่ค่าเริ่มต้น (บันทึกหรือดึงข้อมูลจากเครือข่าย) และส่งผ่านไปยังการแจ้งเตือน ระบบจะเรียกใช้เครื่องมือแจ้งเตือนทันทีที่เกิดเหตุการณ์ใดเหตุการณ์หนึ่งต่อไปนี้
- ระบบจะโหลดคอนเทนเนอร์ที่บันทึกไว้
- หากไม่มีคอนเทนเนอร์ที่บันทึกไว้ แสดงว่าคอนเทนเนอร์เครือข่ายโหลดขึ้นหรือเกิดข้อผิดพลาดของเครือข่าย
- การจับเวลานั้นหมดอายุ
หากเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือตัวจับเวลาหมดอายุ คอนเทนเนอร์ที่ส่งผ่านเข้ามาในการแจ้งเตือนจะเป็นคอนเทนเนอร์เริ่มต้น
หากประเภทที่เปิดคือ kTAGOpenTypePreferFresh
ระบบจะโหลดคอนเทนเนอร์ใหม่ (บันทึกหรือดึงข้อมูลจากเครือข่าย) และส่งเข้าไปในเครื่องมือแจ้ง ระบบจะเรียกใช้เครื่องมือแจ้งเตือนทันทีที่เกิดเหตุการณ์ใดเหตุการณ์หนึ่งต่อไปนี้
- คอนเทนเนอร์ใหม่ที่บันทึกไว้จะโหลดขึ้น
- หากไม่มีคอนเทนเนอร์ที่บันทึกไว้หรือคอนเทนเนอร์ที่บันทึกไว้ไม่ใช่การอัปเดต แสดงว่าคอนเทนเนอร์เครือข่ายโหลดขึ้นหรือเกิดข้อผิดพลาดเกี่ยวกับเครือข่าย
- การจับเวลานั้นหมดอายุ
หากเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือตัวจับเวลาหมดอายุ คอนเทนเนอร์ที่ส่งผ่านเข้ามาในเครื่องมือแจ้งเตือนอาจมีค่าเริ่มต้นหรือคอนเทนเนอร์ที่บันทึกไว้ซึ่งไม่มีการอัปเดต
หากคุณเรียกใช้เมธอด OpenContainer เป็นครั้งที่ 2 ด้วย containerId
ที่ระบุ ระบบจะส่งคอนเทนเนอร์เดียวกันที่แสดงผลจากการเรียกก่อนหน้าไปยังตัวแจ้งทันทีที่พร้อมใช้งาน
- พารามิเตอร์
-
containerId รหัสของคอนเทนเนอร์ที่จะโหลด tagManager TAGManager ที่ใช้เพื่อรับคอนเทนเนอร์ openType ตัวเลือกในการเปิดคอนเทนเนอร์ เวลานอก จำนวนวินาทีสูงสุดที่ต้องรอโหลดคอนเทนเนอร์จากร้านค้าที่บันทึกไว้ หากเป็น nil ระบบจะใช้ defaultTimeout เครื่องมือแจ้งเตือน ตัวแจ้งเตือนที่ไม่บังคับซึ่งจะถูกเรียกใช้เมื่อคอนเทนเนอร์พร้อมใช้งาน ระบบจะเรียกใช้คอนเทนเนอร์ด้วยคอนเทนเนอร์ใหม่ หากมี และโหลดก่อนหมดเวลา มิเช่นนั้น จะมีการเรียกด้วยคอนเทนเนอร์ที่ไม่ใช่แบบใหม่ โปรดทราบว่าผู้แจ้งเตือนอาจมีการเรียกจากชุดข้อความอื่น
+ (NSTimeInterval) defaultTimeout |
แสดงการหมดเวลาเริ่มต้นสำหรับการขอคอนเทนเนอร์
- การคืนสินค้า:
- ระยะหมดเวลาเริ่มต้นเป็นวินาที