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