#iphone #ipad #crash #uiimagepickercontroller
#iPhone #iPad #сбой #uiimagepickercontroller
Вопрос:
Я разрабатываю приложение для фотосъемки и загрузки фотографий на удаленный сервер.
Я настроил вид камеры с помощью overlay view. Приложение позволяет делать более 1 фотографии за раз, и фотографии будут сохранены на устройстве сразу после съемки. Когда я делаю фотографии, приложение выдает предупреждение о памяти, а затем вылетает. Ниже приведен отчет о сбое. Я поговорил со службой поддержки Apple, и они сказали, что это не из-за проблемы с памятью. Это из-за попытки отправить действие одному из ваших объектов контроллера, который больше не существует.
Версия ОС: iPhone OS 4.3.3 (8J2) Версия отчета: 104
Тип исключения: EXC_BAD_ACCESS (SIGSEGV) Коды исключений: KERN_INVALID_ADDRESS в 0x73980000 Аварийный поток: 0
Имя потока 0: Очередь отправки: com.apple.main-thread Произошел сбой потока 0: 0 libobjc.A.dylib
0x34499c9a objc_msgSend 18 1
UIKit
0x30a8bc1a -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] 86 2 CoreFoundation
0x308f056a -[NSObject(NSObject) performSelector: С помощью Object:с помощью Object:] 18 3 UIKit 0x309feec2 -[UIApplication sendAction:to: from:forEvent:] 78 4
UIKit
0x309fee62 -[UIApplication sendAction:toTarget: fromSender:forEvent:] 26 5 UIKit 0x309fee34 -[UIControl sendAction:to:forEvent:] 32 6
UIKit
0x309feb86 -[ UIControl(внутренний) _sendActionsForEvents:с событием:] 350 7 UIKit
0x309ff41c -[UIControl касается отправленного: с событием:] 336 8
UIKit
0x309e452e _uigesture recognizersort и SENDDELAYEDTOUCHES _ 2194 9 UIKit 0x309e3bfa _uigesture recognizerupdateobserver 690 10 CoreFoundation
0x30957a2e CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION 10 11 Ядро 0x3095945e __CFRunLoopDoObservers 406 12 ядро
0x3095a754 __CFRunLoopRun 848 13 CoreFoundation
0x308eaebc CFRunLoopRunSpecific 224 14 CoreFoundation
0x308eadc4 CFRunLoopRunInMode 52 15 GraphicsServices
0x30269418 GSEventRunModal 108 16 GraphicsServices
0x302694c4 GSEventRun 56 17 UIKit 0x30a10d62 -[UIApplication _run] 398 18 UIKit
0x30a0e800 UIApplicationMain 664 19 ручная запись
0x000025a4 main (main.m:14) 20 ручная запись
0x0000254c start 32
Кто-нибудь, пожалуйста, может помочь мне определить, что вызывает эту проблему?
Большое спасибо
С уважением, Чин
Комментарии:
1. Как вы настроили режим наложения? Можете ли вы добавить сюда какой-нибудь код?
2. Это хороший пример, приведенный Apple. Надеюсь, это поможет вам. developer.apple.com/library/ios/#samplecode/PhotoPicker /…
Ответ №1:
Это может быть легко связано с проблемой сохранения / выпуска. Убедитесь, что вы сбалансировали свои вызовы повторного запуска. Также убедитесь, что вы не ссылаетесь ни на какие освобожденные объекты в своем коде.
Возможно, вы захотите взглянуть на включение NSZombieEnabled, чтобы отследить это. Вы можете найти информацию о том, как это включить здесь.
Комментарии:
1. Большое тебе спасибо, Клаус, я долго не мог найти правильный ответ. Я обнаружил проблему с использованием NSZombieEnabled. Это слишком полное использование переменной. Я освободил переменную autorelease. Еще раз спасибо.
2. @Chinthaka Всегда пожалуйста. Просто небольшой совет, поскольку я вижу, что вы новичок в SO. Всегда не забывайте принимать ответ, если он решает вашу проблему 😉