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