我的iPad应用程序因以下崩溃日志而崩溃
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3290732c __pthread_kill + 8
1 libsystem_c.dylib 0x34c7c208 pthread_kill + 48
2 libsystem_c.dylib 0x34c75316 __abort + 86
3 libsystem_c.dylib 0x34c752ba abort + 122
4 libsystem_c.dylib 0x34c87efa szone_error + 262
5 libsystem_c.dylib 0x34c88b2a free_tiny_botch + 78
6 libsystem_c.dylib 0x34c33934 szone_free + 404
7 CoreFoundation 0x374ab730 CFAllocatorDeallocate + 116
8 CoreFoundation 0x374ab6a4 CFRelease + 1052
9 UIKit 0x30704d98 -[UILabel dealloc] + 132
10 libobjc.A.dylib 0x315d316e _objc_rootRelease + 30
11 UIKit 0x30697d34 -[UIView(Hierarchy) removeFromSuperview] + 176
12 UIKit 0x306c009e -[UIView dealloc] + 266
13 UIKit 0x30704d08 -[UIControl dealloc] + 88
14 UIKit 0x307c8a26 -[UITextField dealloc] + 566
15 libobjc.A.dylib 0x315d316e _objc_rootRelease + 30
16 UIKit 0x30697d34 -[UIView(Hierarchy) removeFromSuperview] + 176
17 UIKit 0x306c009e -[UIView dealloc] + 266
18 libobjc.A.dylib 0x315d316e _objc_rootRelease + 30
19 libobjc.A.dylib 0x315d4e50 objc_release + 32
20 libobjc.A.dylib 0x315d3ea6 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 218
21 libobjc.A.dylib 0x315d3dc2 _objc_autoreleasePoolPop + 6
22 CoreFoundation 0x374b2cf8 _CFAutoreleasePoolPop + 12
23 QuartzCore 0x35e0d4b8 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 56
24 CoreFoundation 0x37536b14 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
25 CoreFoundation 0x37534d50 __CFRunLoopDoObservers + 252
26 CoreFoundation 0x375350aa __CFRunLoopRun + 754
27 CoreFoundation 0x374b849e CFRunLoopRunSpecific + 294
28 CoreFoundation 0x374b8366 CFRunLoopRunInMode + 98
29 GraphicsServices 0x376b1432 GSEventRunModal + 130
30 UIKit 0x306c4cce UIApplicationMain + 1074
31 TestAPP 0x000023aa main (main.m:15)
32 TestAPP 0x00002368 start + 32`enter code here`
在查看此崩溃日志后,我无法对崩溃日志采取任何线索。 有人可以帮我解决这个问题。
答案 0 :(得分:-1)
看起来这就是说法' - [UITextField dealloc]' - 所以文本字段被解除分配,并清理所有对象。最容易崩溃的对象是“text”属性,但它可能是您设置的该textField保留的任何其他属性。
所以要做的第一件事就是追踪textField导致崩溃的内容,然后查看你在该对象上设置的所有内容。
例如,(非ARC):
NSString *text = textField.text; // you don't own this object
[text release];
可能导致崩溃(没有测试这个)。 textField有很多属性 - 可以设置的视图 - 如果你设置了一个,那么它可能会导致崩溃。
编辑:看看以下几行:17 UIKit 0x306c009e -[UIView dealloc] + 266
18 libobjc.A.dylib 0x315d316e _objc_rootRelease + 30
19 libobjc.A.dylib 0x315d4e50 objc_release + 32
20 libobjc.A.dylib 0x315d3ea6 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 218
自下而上,他的系统似乎会弹出自动释放池,然后首先调用UIView dealloc,然后开始释放该视图拥有的对象。这是我的解释,但我不是Apple工程师,所以我不确定100%。