此崩溃报告中没有引用我的应用程序的方法,但我无法重现它。我的几个用户遇到了同样的崩溃。我找不到任何带滚动视图的tableview单元格或任何使用弹簧的地方。这次崩溃可能来自哪里?
Incident Identifier: 748D4582-3868-42BD-BF98-B3B47895954D
CrashReporter Key: F7F44964-E877-4C7A-881C-91EBC4261080
Hardware Model: iPhone5,1
Process: MyApp [2415]
Path: /Users/USER/MyApp.app/MyApp
Identifier: com.mycom.myapp
Version: 1.5.1
Code Type: ARM
Parent Process: launchd [1]
Date/Time: 2013-11-21 05:30:47 +0000
OS Version: iPhone OS 7.0.4 (11B554a)
Report Version: 104
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x5000000c
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x3921fb66 objc_msgSend + 5
1 UIKit 0x3177e315 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 409
2 UIKit 0x317266cd -[UITableView _updateVisibleCellsNow:] + 1800
3 UIKit 0x31719f75 -[UITableView _visibleCells] + 24
4 UIKit 0x31783f13 -[UITableView indexPathForCell:] + 26
5 UIKit 0x31782289 -[UITableViewCell _canDoSeparatorLayout] + 64
6 UIKit 0x31781e19 -[UITableViewCell _updateSeparatorContent] + 56
7 UIKit 0x31844a3b -[UITableViewCell _updateViewsForDeleteButton] + 218
8 UIKit 0x3171c673 -[UITableViewCellScrollView setContentOffset:] + 186
9 UIKit 0x31880561 __43-[UITableViewCell _animateSwipeCancelation]_block_invoke + 81
10 UIKit 0x31681113 +[UIView _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 490
11 UIKit 0x317a66ef +[UIView _animateUsing WithDuration:delay:options:mass:stiffness:damping:initialVelocity:animations:start:completion:] + 166
12 UIKit 0x317a663f +[UIView _animateUsingSpringWithDuration:delay:options:mass:stiffness:damping:initialVelocity:animations:completion:] + 90
13 UIKit 0x318804bf -[UITableViewCell _animateSwipeCancelation] + 278
14 UIKit 0x31850639 -[UITableView _endSwipeToDeleteRowDidDelete:] + 216
15 UIKit 0x31901873 -[UITableView willMoveToSuperview:] + 62
16 UIKit 0x318e1913 __UIViewWillBeRemovedFromSuperview + 151
17 UIKit 0x3164a091 -[UIView removeFromSuperview] + 56
18 UIKit 0x3171e431 -[UIScrollView removeFromSuperview] + 64
19 UIKit 0x3164c9b3 -[UIView dealloc] + 366
20 libobjc.A.dylib 0x39221023 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 359
21 CoreFoundation 0x2edfb1c9 _CFAutoreleasePoolPop + 16
22 CoreFoundation 0x2ee90e83 __CFRunLoopRun + 1315
23 CoreFoundation 0x2edfb471 CFRunLoopRunSpecific + 524
24 CoreFoundation 0x2edfb253 CFRunLoopRunInMode + 106
25 GraphicsServices 0x33b352eb GSEventRunModal + 138
26 UIKit 0x316b0845 UIApplicationMain + 1136
27 MyApp 0x000e810b main (main.m:5)
28 libdyld.dylib 0x3971dab7 start + 3
Thread 1:
0 libsystem_kernel.dylib 0x397c1838 kevent64 + 24
1 libdispatch.dylib 0x3970a623 _dispatch_mgr_thread + 39
Thread 2:
0 libsystem_kernel.dylib 0x397d4c7c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x39838cc4 start_wqthread + 8
Thread 3:
0 libsystem_kernel.dylib 0x397d4c7c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x39838cc4 start_wqthread + 8
Thread 4:
0 libsystem_kernel.dylib 0x397d4c7c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x39838cc4 start_wqthread + 8
Thread 5:
0 libsystem_kernel.dylib 0x397c1a84 mach_msg_trap + 20
1 CoreFoundation 0x2ee92559 __CFRunLoopServiceMachPort + 157
2 CoreFoundation 0x2ee90c79 __CFRunLoopRun + 793
3 CoreFoundation 0x2edfb471 CFRunLoopRunSpecific + 524
4 CoreFoundation 0x2ee3f0db CFRunLoopRun + 98
5 CoreMotion 0x2f4b3369 CLSF_thorntonUpdate_6x6 + 57225
6 libsystem_pthread.dylib 0x3983ac5d _pthread_body + 141
7 libsystem_pthread.dylib 0x3983abcf _pthread_start + 102
8 libsystem_pthread.dylib 0x39838cd0 thread_start + 8
Thread 0 crashed with ARM Thread State:
pc: 0x3921fb66 r7: 0x27d21618 sp: 0x27d215f4 r0: 0x17f82270
r1: 0x31c343d7 r2: 0x189d9e00 r3: 0x17d46730 r4: 0x189d9e00
r5: 0x00000338 r6: 0x17e0e340 r8: 0x39e43294 r9: 0x50000000
r10: 0x17d46730 r11: 0x000001d0 ip: 0x39d3e220 lr: 0x3177e315
cpsr: 0x20000030
答案 0 :(得分:7)
这是我看到的崩溃报告:
崩溃是SIGSEGV
中的objc_msgSend
造成的。这意味着应用程序正在尝试向无效的对象发送消息。这意味着您的应用程序(某处)至少存在一个内存问题。
尝试使用滑动删除手势删除tableView中的行时会出现问题,请参阅显示在堆栈跟踪中的-[UITableView _endSwipeToDeleteRowDidDelete:]
以及上面的其他提示,如-[UITableViewCell _animateSwipeCancelation]
,-[UITableViewCell _updateViewsForDeleteButton]
。
因此,在应用程序的所有表视图中检查此用例可能值得一试。
此外,使用Xcode的Analyze
功能并修复其显示的所有警告,并尝试使用Enable Zombie Objects
设置运行您的应用。有很多网站,也在这里回答SO解释如何做到这一点。