0

我的 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`

在查看此崩溃日志后,我无法在崩溃日志中找到任何线索。有人可以帮我解决这个问题。

4

1 回答 1

-1

这似乎是说明行'-[UITextField dealloc]' - 所以文本字段被释放,并且它清理了它的所有对象。最有可能崩溃的对象是“文本”属性,但它可能是您设置的任何其他属性,该属性被该文本字段保留。

所以要做的第一件事是追踪导致崩溃的 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,然后开始释放该视图拥有的对象。这是我的解释,但我不是苹果工程师,所以我不确定 100%。

于 2012-09-05T11:36:15.287 回答