นี่เป็นข้อบกพร่องของ UIKit หรือไม่

ฉันไม่แน่ใจว่าข้อบกพร่องนี้มาจากแอปของฉันจริงๆ หรืออาจเป็นข้อบกพร่องของ UIKit จริงๆ บางทีบางคนที่นี่สามารถชี้แจงเรื่องนี้ได้

มีตารางวิว. แต่ละเซลล์จะมีปุ่มเปิดเผยข้อมูลให้กับหน้าจอคล้าย "การตั้งค่า" ที่เป็นมุมมองแบบกิริยาช่วย มุมมองโมดอลสามารถปิดได้โดยใช้ปุ่ม "ปิด"

มุมมองกิริยาประกอบด้วย UITextView

มาถึงจุดบกพร่อง: ผู้ใช้ถือคีย์ที่มีอักขระที่คล้ายกัน (เช่น: a -> ä à à ... ) เมื่อผู้ใช้ถือคีย์นั้น ระบบจะเสนออักขระและตัวแรกจะถูกเลือกเป็นสีน้ำเงิน หากผู้ใช้กดปุ่มนี้ค้างไว้และคลิกปุ่ม "ปิด" พร้อมกัน มุมมองโมดอลจะหายไปและมุมมองตารางจะปรากฏขึ้น แป้นพิมพ์หายไป แต่เมนู {a á ä à} ยังคงมองเห็นได้ประมาณหนึ่งวินาที จากนั้นแอพก็ขัดข้อง

สามารถทำซ้ำได้บนอุปกรณ์เท่านั้น เนื่องจากคุณไม่สามารถกดปุ่มสองปุ่มพร้อมกันได้

นี่คือการติดตามสแต็ก

Date/Time: 2009-12-01 17:39:31.048 +0100
OS Version: iPhone OS 3.0.1 (7A400)
Report Version: 104

Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000008
Crashed Thread: 0

Thread 0 Crashed:
0 libobjc.A.dylib 0x300102ac objc_msgSend + 16
1 UIKit 0x308ffda0 -[UIKeyboardImpl hasMarkedText] + 20
2 UIKit 0x309161b2 -[UIKeyboardImpl updateShiftState] + 230
3 UIKit 0x309224c0 -[UIKeyboardImpl handleObserverCallback] + 72
4 UIKit 0x30922466 observerCallback + 14
5 CoreFoundation 0x3020bf38 __CFRunLoopDoObservers + 420
6 CoreFoundation 0x30252e46 CFRunLoopRunSpecific + 1734
7 CoreFoundation 0x3025276a CFRunLoopRunInMode + 42
8 GraphicsServices 0x32044b08 GSEventRunModal + 108
9 GraphicsServices 0x32044bb4 GSEventRun + 56
10 UIKit 0x308f035c -[UIApplication _run] + 384
11 UIKit 0x308ef11a UIApplicationMain + 694
12 **** 0x00002360 main (main.m:14)
13 **** 0x000022fc start + 44

Thread 1:
0 libSystem.B.dylib 0x31d47624 semaphore_wait_signal_trap + 8
1 libSystem.B.dylib 0x31d702de semaphore_wait_signal + 2
2 libSystem.B.dylib 0x31d49c9c pthread_mutex_lock + 284
3 WebCore 0x35866fa6 __ZL17_WebTryThreadLockb + 98
4 WebCore 0x35866f22 __ZL14WebRunLoopLockP19__CFRunLoopObservermPv + 14
5 CoreFoundation 0x3020bf38 __CFRunLoopDoObservers + 420
6 CoreFoundation 0x30252db0 CFRunLoopRunSpecific + 1584
7 CoreFoundation 0x3025276a CFRunLoopRunInMode + 42
8 WebCore 0x35866ed2 __ZL12RunWebThreadPv + 286
9 libSystem.B.dylib 0x31d6a6ea _pthread_body + 10

person Tomen    schedule 01.12.2009    source แหล่งที่มา
comment
คุณได้ลองทำสิ่งนี้กับ iPhone OS ล่าสุดแล้วหรือยัง? นอกจากนี้ มุมมองตารางที่มีเซลล์ที่มีการเปิดเผยไม่ควรใช้วิธีการโมดอลเมื่อแตะ (ฉันพนันได้เลยว่า Apple จะตั้งค่าสถานะว่าเป็นการละเมิด UI) แต่ใช้ตัวควบคุมการนำทางเพื่อผลักดันมุมมองถัดไป (รายละเอียด) ไปที่ กองจากด้านข้าง   -  person Shaggy Frog    schedule 03.12.2009


คำตอบ (2)


วิธีแก้ปัญหาคือการลาออกจากการตอบกลับครั้งแรก ซึ่งฉันลืมไป

person Tomen    schedule 12.01.2010
comment
ฉันยังได้รับข้อผิดพลาดเดียวกันเมื่อไม่กี่วันก่อน แต่ฉันก็ยังสงสัยว่า จำเป็นต้องลาออกจากการตอบกลับครั้งแรกหรือไม่ ในเมื่อสมมติว่าคุณกดมุมมองบนตัวควบคุมการนำทาง - person itsaboutcode; 21.06.2010
comment
ฉันคิดว่ามันจะเป็นกรณีเดียวกัน - person Tomen; 21.06.2010

ฟังดูเหมือนเป็นแมลงสำหรับฉัน แต่ทำไมคุณถึงไม่ใช้ระบบปฏิบัติการเวอร์ชันล่าสุดล่ะ? มีการแก้ไขข้อบกพร่องมากมายระหว่างเวอร์ชัน 3.0.1 และเวอร์ชันล่าสุด และคุณจะเสียเวลาอย่างมากกับปัญหาเช่นนี้ซึ่งอาจได้รับการแก้ไขแล้ว

person Steve Weller    schedule 03.12.2009