我在我的项目中包含了three20库。我正在使用TTThumbsViewController。一切都运行良好,直到我升级到Xcode 3.2.6和iOS 4.3。照片网格显示正常,但只要我点击一个拇指,应用程序崩溃。我确信这不是内存问题。它在模拟器上工作正常。这是崩溃报告:
事件标识符:3C63956F-F718-468F-B113-116E457DEB4E
CrashReporter密钥:32180af33b999869f98369f8d85412b799a88fdb
硬件型号:iPhone3,1
过程:MyApp [15071]
路径:/var/mobile/Applications/13C32157-F4CA-44BC-BB8F-D9A9FE9EAE38/MyApp.app/MyApp
标识符:MyApp
版本:??? (???)
代码类型:ARM(Native)
父流程: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
2 libsystem_c.dylib 0x0002bbf8 abort + 72
3 libstdc ++。6.dylib 0x00044a64 __gnu_cxx :: __ verbose_terminate_handler()+ 376
4 libobjc.A.dylib 0x0000606c _objc_terminate + 104
5 libstdc ++。6.dylib 0x00042e36 _ 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 raise:format:arguments:] + 62
10 CoreFoundation 0x0009e4c4 + [NSException raise:format:] + 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:] + 182
15 MyApp 0x00078366 - [TTPhotoView layoutSubviews](TTPhotoView.m:221)
16 UIKit 0x000055f4 - [UIView(CALayerDelegate) layoutSublayersOfLayer:] + 20
17 CoreFoundation 0x0000befc - [NSObject(NSObject)performSelector:withObject:] + 16
18 QuartzCore 0x00002bae - [CALayer layoutSublayers] + 114
任何想法?
由于
答案 0 :(得分:4)
函数CALayerSetPosition
抛出类型为NSException
的异常,没有人捕获它,因此您的应用程序将被终止。尝试在函数-[UIView(Geometry) setFrame:]
(应该位于TTPhotoView.m的第221行)的-[TTPhotoView layoutSubviews]
调用周围添加此代码:
@try
{
[myUIView setFrame:someFrame];
}
@catch(NSException *exception)
{
NSLog(@"Caught exception: %@", exception);
}
这应该会为您提供有关抛出异常的原因的更多信息;最有可能的是,你传递的是无效参数。
答案 1 :(得分:3)
是的......这是一个正在通过的NaN。基本上,如果您使用构造函数(MockPhotoSource类),默认情况下为caption变量赋予null值,它会抛出此异常。所以我使用了另一个构造函数,并给标题参数
一个空白值答案 2 :(得分:0)
我最近也看到了这个异常,根据Adam的说法,我认为问题在于NaN作为参数传入,这就是抛出异常。如果这是我面临的同样问题,我能够对该线路进行评论以解决问题(AFAICT该线路仅处理加载微调器进度指示器)。因此,如果你愿意不接受那种生活,你可以绕过它