繁体   English   中英

选择时,UITableView崩溃

[英]UITableView crash when selecting

我有一个由fetchedResultsController驱动的简单的表视图控制器,当我选择它时它经常崩溃,并且崩溃日志是这样的;

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xc21eb7ad
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x3c0ce5d0 objc_msgSend + 16
1   UIKit                           0x3623c564 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 404
2   UIKit                           0x3622138c -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1312
3   UIKit                           0x36238822 -[UITableView layoutSubviews] + 202
4   UIKit                           0x361f48c2 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 254
5   QuartzCore                      0x35fa050e -[CALayer layoutSublayers] + 210
6   QuartzCore                      0x35fa00b0 CA::Layer::layout_if_needed(CA::Transaction*) + 456
7   QuartzCore                      0x35fa0fd4 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 12
8   QuartzCore                      0x35fa09be CA::Context::commit_transaction(CA::Transaction*) + 234
9   QuartzCore                      0x35fa07d0 CA::Transaction::commit() + 312
10  QuartzCore                      0x35fa0634 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 56
11  CoreFoundation                  0x343b793e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
12  CoreFoundation                  0x343b5c34 __CFRunLoopDoObservers + 272
13  CoreFoundation                  0x343b5f8e __CFRunLoopRun + 742
14  CoreFoundation                  0x34329238 CFRunLoopRunSpecific + 352
15  CoreFoundation                  0x343290c4 CFRunLoopRunInMode + 100
16  GraphicsServices                0x37f07336 GSEventRunModal + 70
17  UIKit                           0x362452b4 UIApplicationMain + 1116
18  Introdex                        0x0011e538 0xa3000 + 505144
19  Introdex                        0x000a5a24 0xa3000 + 10788

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x3c5b75d0 kevent64 + 24
1   libdispatch.dylib               0x3c4f2d22 _dispatch_mgr_invoke + 806
2   libdispatch.dylib               0x3c4ee374 _dispatch_mgr_thread + 32

Thread 2 name:  WebThread
Thread 2:
0   libsystem_kernel.dylib          0x3c5b6e30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c5b6fd0 mach_msg + 48
2   CoreFoundation                  0x343b72b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x343b602c __CFRunLoopRun + 900
4   CoreFoundation                  0x34329238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x343290c4 CFRunLoopRunInMode + 100
6   WebCore                         0x3a328390 RunWebThread(void*) + 440
7   libsystem_c.dylib               0x3c5200de _pthread_start + 306
8   libsystem_c.dylib               0x3c51ffa4 thread_start + 4

Thread 3:
0   libsystem_kernel.dylib          0x3c5b6e30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c5b6fd0 mach_msg + 48
2   CoreFoundation                  0x343b72b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x343b602c __CFRunLoopRun + 900
4   CoreFoundation                  0x34329238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x343290c4 CFRunLoopRunInMode + 100
6   Foundation                      0x34c4d5be -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250
7   Foundation                      0x34cf0c40 -[NSRunLoop(NSRunLoop) run] + 76
8   Introdex                        0x0021924c 0xa3000 + 1532492
9   Foundation                      0x34cfa22c __NSThread__main__ + 968
10  libsystem_c.dylib               0x3c5200de _pthread_start + 306
11  libsystem_c.dylib               0x3c51ffa4 thread_start + 4

Thread 4 name:  com.apple.NSURLConnectionLoader
Thread 4:
0   libsystem_kernel.dylib          0x3c5b6e30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c5b6fd0 mach_msg + 48
2   CoreFoundation                  0x343b72b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x343b602c __CFRunLoopRun + 900
4   CoreFoundation                  0x34329238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x343290c4 CFRunLoopRunInMode + 100
6   Foundation                      0x34c76888 +[NSURLConnection(Loader) _resourceLoadLoop:] + 304
7   Foundation                      0x34cfa22c __NSThread__main__ + 968
8   libsystem_c.dylib               0x3c5200de _pthread_start + 306
9   libsystem_c.dylib               0x3c51ffa4 thread_start + 4

Thread 5 name:  com.apple.CFSocket.private
Thread 5:
0   libsystem_kernel.dylib          0x3c5c7594 __select + 20
1   CoreFoundation                  0x343bb474 __CFSocketManager + 676
2   libsystem_c.dylib               0x3c5200de _pthread_start + 306
3   libsystem_c.dylib               0x3c51ffa4 thread_start + 4

Thread 6 name:  JavaScriptCore::BlockFree
Thread 6:
0   libsystem_kernel.dylib          0x3c5c708c __psynch_cvwait + 24
1   libsystem_c.dylib               0x3c518afc _pthread_cond_wait + 644
2   libsystem_c.dylib               0x3c518870 pthread_cond_timedwait + 40
3   JavaScriptCore                  0x382fddf6 WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 102
4   JavaScriptCore                  0x38410532 JSC::BlockAllocator::blockFreeingThreadMain() + 78
5   JavaScriptCore                  0x38423030 WTF::wtfThreadEntryPoint(void*) + 12
6   libsystem_c.dylib               0x3c5200de _pthread_start + 306
7   libsystem_c.dylib               0x3c51ffa4 thread_start + 4

Thread 7 name:  JavaScriptCore::Marking
Thread 7:
0   libsystem_kernel.dylib          0x3c5c708c __psynch_cvwait + 24
1   libsystem_c.dylib               0x3c518afc _pthread_cond_wait + 644
2   libsystem_c.dylib               0x3c522cf8 pthread_cond_wait + 36
3   JavaScriptCore                  0x383a36dc JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 140
4   JavaScriptCore                  0x383a3620 JSC::MarkStackThreadSharedData::markingThreadMain() + 140
5   JavaScriptCore                  0x38423030 WTF::wtfThreadEntryPoint(void*) + 12
6   libsystem_c.dylib               0x3c5200de _pthread_start + 306
7   libsystem_c.dylib     

有人可以解释一下该崩溃日志的含义吗? 我无法正确阅读它,也不知道这实际上意味着什么。 如果有人可以帮助我,那将真的很棒。

如果不看代码,很难知道哪里出错了。

但据我所知,如果您能够成功在Table上显示数据并在单击特定行时崩溃。 以下是一些可能性。

1)。 确保已在控制器的头文件中声明了UITableViewDelegate。

解决方案:确保已安装此文件(在.h文件中)

@interface FavViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

2)。 忘记与文件所有者连接代理

解决方案:打开布局的XIB文件->选择UITableView->在连接检查器中->将委托拖到文件的所有者(如下图所示)

在此处输入图片说明

您可以通过在.m文件的viewDidLoad方法中以编程方式完成此操作

favourite_tbl.delegate=self;//favourite_tbl is instance of myTableView

3)。 您的didSelectRowAtIndexPath方法(用于单击行)应类似于

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    selectedIndex = indexPath.row;

    NSLog(@"you have selected %d",selectedIndex);

}

如果您有任何问题,请随时给我评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM