คำถามติดแท็ก nsrunloop

1
NSDefaultRunLoopMode เทียบกับ NSRunLoopCommonModes
เมื่อใดก็ตามที่ฉันพยายามที่จะดาวน์โหลดไฟล์ขนาดใหญ่ที่อยู่เบื้องหลังUIScrollView, MPMapViewหรือสิ่งที่ขั้นตอนการดาวน์โหลดที่ได้รับการหยุดเร็วที่สุดเท่าที่ฉันสัมผัสหน้าจอ iPhone โชคดีที่โพสต์บล็อกที่ยอดเยี่ยมโดยJörnแนะนำตัวเลือกอื่นNSRunLoopCommonModesสำหรับการเชื่อมต่อ นั่นทำให้ฉันดูรายละเอียดของสองโหมด NSDefaultRunLoopMode และ NSRunLoopCommonModes แต่เอกสารของ Apple ไม่ได้อธิบายอย่างกรุณานอกเหนือจากการพูด NSDefaultRunLoopMode โหมดจัดการกับแหล่งอินพุตอื่นที่ไม่ใช่อ็อบเจ็กต์ NSConnection นี่คือโหมดรันลูปที่ใช้บ่อยที่สุด NSRunLoopCommonModes อ็อบเจ็กต์ที่เพิ่มเข้าในรันลูปโดยใช้ค่านี้เนื่องจากโหมดถูกมอนิเตอร์โดยโหมดรันลูปทั้งหมดที่ได้รับการประกาศให้เป็นสมาชิกของชุดโหมด "ทั่วไป" ดูคำอธิบายของ CFRunLoopAddCommonMode สำหรับรายละเอียด CFRunLoopAddCommonMode แหล่งที่มาตัวจับเวลาและผู้สังเกตการณ์จะได้รับการลงทะเบียนในโหมดรันลูปตั้งแต่หนึ่งโหมดขึ้นไปและจะรันก็ต่อเมื่อรันลูปทำงานในโหมดใดโหมดหนึ่งเท่านั้น โหมดทั่วไปคือชุดของโหมดวนรอบการทำงานที่คุณสามารถกำหนดชุดของแหล่งที่มาตัวจับเวลาและผู้สังเกตการณ์ที่แบ่งใช้โดยโหมดเหล่านี้ ตัวอย่างเช่นแทนที่จะลงทะเบียนซอร์สในโหมด run loop แต่ละโหมดคุณสามารถลงทะเบียนครั้งเดียวกับโหมดหลอกทั่วไปของ run loop และจะถูกลงทะเบียนโดยอัตโนมัติในโหมด run loop แต่ละโหมดในชุดโหมดทั่วไป ในทำนองเดียวกันเมื่อเพิ่มโหมดลงในชุดของโหมดทั่วไปแหล่งที่มาตัวจับเวลาหรือผู้สังเกตการณ์ที่ลงทะเบียนไว้แล้วในโหมดหลอกทั่วไปจะถูกเพิ่มลงในโหมดทั่วไปที่เพิ่มใหม่ ใครช่วยอธิบายทั้งสองเป็นภาษามนุษย์ได้ไหม

4
ทำความเข้าใจกับ NSRunLoop
ใครสามารถอธิบายได้ว่าคือNSRunLoopอะไร? อย่างที่ฉันรู้NSRunLoopคือสิ่งที่เกี่ยวโยงกันNSThreadใช่ไหม สมมติว่าฉันสร้างเธรดเช่น NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil]; [th start]; -(void) someMethod { NSLog(@"operation"); } หลังจากเธรดนี้เสร็จสิ้นการทำงานของเขาใช่ไหม ทำไมต้องใช้RunLoopsหรือใช้ที่ไหน? จากเอกสารของ Apple ฉันได้อ่านบางสิ่ง แต่ยังไม่ชัดเจนสำหรับฉันดังนั้นโปรดอธิบายให้ง่ายที่สุด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.