【发布时间】:2011-03-14 07:44:33
【问题描述】:
首先这是我的崩溃日志:
线程 0 崩溃:
0 libSystem.B.dylib 0x35176264 __kill + 8
1 libSystem.B.dylib 0x35176254 杀死 + 4
2 libSystem.B.dylib 0x35176246 提升 + 10
3 libSystem.B.dylib 0x3518ad02 中止 + 50
4 libstdc++.6.dylib 0x31432a20 __gnu_cxx::__verbose_terminate_handler() + 376
5 libobjc.A.dylib 0x31a97594 _objc_terminate + 104
6 libstdc++.6.dylib 0x31430df2 _cxxabiv1::_terminate(void (*)()) + 46
7 libstdc++.6.dylib 0x31430e46 std::terminate() + 10
8 libstdc++.6.dylib 0x31430f16 __cxa_throw + 78
9 libobjc.A.dylib 0x31a964c4 objc_exception_throw + 64
10 CoreFoundation 0x361857c2 +[NSException raise:format:arguments:] + 62
11 CoreFoundation 0x361857fc +[NSException raise:format:] + 28
12 QuartzCore 0x3148b222 CALayerSetPosition(CALayer*, CA::Vec2 const&, bool) + 134
13 QuartzCore 0x3148b190 -[CALayer setPosition:] + 32
14 QuartzCore 0x3148b0dc -[CALayer setFrame:] + 384
15 UIKit 0x35d15aba -[UIView(Geometry) setFrame:] + 182
16 UIKit 0x35d15928 -[UIImageView setFrame:] + 96
我从崩溃日志中复制了一部分。第 16 行之后是我的课程,我不能在这里展示。在 MyClass 和 MyMethod 中,我更改了 imageView 的框架。我的问题是我无法重现此错误,我想重现它。是什么导致了这个日志?我尝试在调用 setFrame: 之前释放 imageView,但它不会产生此错误。 任何想法如何得到它?或者为什么有时会出现这个错误?
【问题讨论】:
-
如果没有看到任何代码,这有点难以分辨。但是,如果它不可重现,我会说这可能是内存问题。检查您是否正确管理了所有保留计数。使用仪器测试应用程序的泄漏也可能很有用。
-
如果您无法重现您的代码,如您所说,那么除了崩溃日志之外的任何其他内容都很难帮助您解决问题。从检查您如何设置
UIImageView的框架开始,然后从那里向后工作。 -
这很糟糕,因为我试图强制释放 imageView,应用程序在 setFrame: 处崩溃,但没有此日志。为什么它会在此日志中显示 [NSException raise:format:]?你们有什么想法吗?
标签: ios4 uiview uiimageview