5
iOS เริ่มเธรดพื้นหลัง
ฉันมี sqlitedb ขนาดเล็กในอุปกรณ์ iOS ของฉัน เมื่อผู้ใช้กดปุ่มฉันจะดึงข้อมูลจาก sqlite และแสดงให้ผู้ใช้เห็น ส่วนที่ดึงข้อมูลนี้ฉันต้องการทำในเธรดพื้นหลัง (เพื่อไม่บล็อกเธรดหลักของ UI) ฉันทำแบบนี้ - [self performSelectorInBackground:@selector(getResultSetFromDB:) withObject:docids]; หลังจากดึงข้อมูลและประมวลผลเล็กน้อยฉันต้องอัปเดต UI แต่เนื่องจาก (ตามแนวทางปฏิบัติที่ดี) เราไม่ควรทำการอัปเดต UI จากเธรดพื้นหลัง ฉันเรียกว่าselectorบน mainthread เช่นนั้น - [self performSelectorOnMainThread:@selector(showResults) withObject:nil waitUntilDone:NO]; แต่แอพของฉันขัดข้องในขั้นตอนแรก เช่นเริ่มต้นเธรดพื้นหลัง นี่ไม่ใช่วิธีเริ่มเธรดพื้นหลังใน iOS ใช่ไหม อัปเดต 1:หลังจากที่[self performSelectorInBackground....ฉันได้รับ stacktrace นี้ไม่มีข้อมูลอะไรเลย - อัปเดต 2:ฉันได้ลองเริ่มเธรดพื้นหลังเช่นนั้น - [NSThread detachNewThreadSelector:@selector(getResultSetFromDB:) toTarget:self withObject:docids];แต่ฉันก็ยังได้รับ stacktrace …