Это ошибка 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 пометит это как нарушение пользовательского интерфейса), а вместо этого использовать навигационный контроллер, чтобы нажимать следующее (подробное) представление на стек сбоку.   -  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