Сбой приложения - EXC_CRASH (SIGABRT) - iOS 4.3 - three20 - PullRequest
0 голосов
/ 07 мая 2011

Я включил три20 библиотек в свой проект.Я использую TTThumbsViewController.Все работало отлично, пока я не обновился до Xcode 3.2.6 и iOS 4.3.Сетка фотографий выглядит нормально, но как только я нажимаю на одну из них, приложение вылетает.Я уверен, что это не проблема памяти.Это работает отлично на симуляторе все же.Вот отчет о сбое:

Идентификатор инцидента: 3C63956F-F718-468F-B113-116E457DEB4E
CrashReporter Клавиша: 32180af33b999869f98369f8d85412b799a88fdb *1003* 1006 * iPhone: [Модель устройства: iPhone [:15071]
Путь: /var/mobile/Applications/13C32157-F4CA-44BC-BB8F-D9A9FE9EAE38/MyApp.app/MyApp
Идентификатор: MyApp
Версия: ???(???)
Тип кода: ARM (собственный)
Родительский процесс: launchd [1]

Дата / Время: 2011-05-06 21: 48: 06.042 -0500
Версия ОС: iPhone OS 4.3 (8F190)
Версия отчета: 104

Тип исключения: EXC_CRASH (SIGABRT)
Коды исключений: 0x00000000, 0x00000000
Сбой потока: 0

Имя потока 0: очередь отправки: com.apple.main-thread
Сбой потока 0:
0 libsystem_kernel.dylib 0x00011a1c __pthread_kill + 8
1 libsystem_c.dylib 0x000333b4 pthread_kill + 52 * 1025c. 2 libs.dylib 0x0002bbf8 прервать + 72
3 libstdc ++. 6.dylib 0x00044a64 __gnu_cxx :: __ verbose_terminate_handler () + 376
4 libobjc.A.dylib 0x0000606c _objc_terminate + 104 * 10 *6829* 292 * 292 * 028 * 6 0002 029 * 6).cxxabiv1 :: _terminate (void (*) ()) + 46
6 libstdc ++. 6.dylib 0x00042e8a std :: terminate () + 10
7 libstdc ++. 6.dylib 0x00042f5a __cxa_throw + 78
8 libobjc.A.dylib 0x00004c84 objc_exception_throw + 64
9 CoreFoundation 0x0009e48a+ [Повышение NSException: формат: аргументы:] + 62
10 CoreFoundation 0x0009e4c4 + + Повышение NSException: формат:] + 28
11 QuartzCore 0x00001616 CALayerSetPosition (CALayer *, CA :: Vec2 const &, bool) + 134
12 QuartzCore 0x00001584 - [CALayer setPosition:] + 32
13 QuartzCore 0x000014d0 - [CALayer setFrame:] + + 384
14 UIKit 0x0000544e - [UIView (Geometry) setFrame:] + 18236 0x000 *- [TTPhotoView layoutSubviews] (TTPhotoView.m: 221)
16 UIKit 0x000055f4 - [UIView (CALayerDelegate) layoutSublayersOfLayer:] + 20
17 CoreFoundation 0x0000befc - [NSObject (NSObjectObject 16): выбор объекта 0: выбор объекта 16: выбор объекта 0: выбор объекта: выбор объекта 16: 0* 18 QuartzCore 0x00002bae - [CALayer layoutSublayers] + 114

Любые идеи кто-нибудь?

Спасибо

Ответы [ 3 ]

4 голосов
/ 07 мая 2011

Функция CALayerSetPosition выдает исключение типа NSException, и никто его не перехватывает, поэтому ваше приложение закрывается. Попробуйте добавить этот код вокруг вызова к -[UIView(Geometry) setFrame:] внутри функции -[TTPhotoView layoutSubviews] (которая должна быть в строке 221 TTPhotoView.m):

@try
{
    [myUIView setFrame:someFrame];
}
@catch(NSException *exception)
{
    NSLog(@"Caught exception: %@", exception);
}

Это должно дать вам больше информации о том, почему выбрасывается исключение; скорее всего, вы передаете неверный параметр или что-то в этом роде.

3 голосов
/ 10 мая 2011

Да .. Это был NaN, который передавался. В основном, если вы используете конструктор (класс MockPhotoSource), который по умолчанию присваивает пустое значение переменной заголовка, он вызывает это исключение. Поэтому я использовал другой конструктор и дал пустое значение для параметра заголовка

0 голосов
/ 08 мая 2011

Я также недавно видел это исключение, и, как сказал Адам, я считаю, что проблема в том, что NaN передается в качестве параметра, и это вызывает исключение.Если это та же проблема, с которой я столкнулся, я смог закомментировать строку, чтобы просто обойти эту проблему (AFAICT, строка имеет дело только с индикатором прогресса загрузки счетчика).Так что, если вы готовы жить без этого, вы можете обойти это

...