2013-11-27 175 views
2

我從Crashlytics收到此錯誤消息。ios崩潰問題 - EXC_BAD_ACCESS

異常類型:EXC_BAD_ACCESS代碼:KERN_INVALID_ADDRESS在0xd000000c

Thread 0: Crashed: com.apple.main-thread 
0 libobjc.A.dylib    0x3b283b26 objc_msgSend + 5 
1 TestApp      0x0012b239 -[EasyTableView scrollViewDidScroll:]  (EasyTableView.m:291) 
2 UIKit       0x339f006d -[UIScrollView(UIScrollViewInternal) _notifyDidScroll] + 64 
3 UIKit       0x3376d375 -[UIScrollView setContentOffset:] + 596 
4 UIKit       0x3381b005 -[UITableView setContentOffset:] + 320 
5 UIKit       0x3376d0e7 -[UIScrollView _adjustContentOffsetIfNecessary] + 1354 
6 UIKit       0x33820773 -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 414 
7 UIKit       0x338205cb -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:] + 30 
8 UIKit       0x33820587 -[UIScrollView removeFromSuperview] + 30 
9 UIKit       0x3374e687 -[UIView dealloc] + 366 
10 liboainject.dylib    0x002d86cd ___swapMethods_block_invoke_4 
11 UIKit       0x3374e687 -[UIView dealloc] + 366 
12 liboainject.dylib    0x002d86cd ___swapMethods_block_invoke_4 
13 UIKit       0x3374e687 -[UIView dealloc] + 366 
14 liboainject.dylib    0x002d86cd ___swapMethods_block_invoke_4 
15 libobjc.A.dylib    0x3b285007 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 358 
16 liboainject.dylib    0x002d7d33 __oa__objc_autoreleasePoolPop 
17 CoreFoundation     0x30f10a41 _CFAutoreleasePoolPop + 16 
18 UIKit       0x337464cd _wrapRunLoopWithAutoreleasePoolHandler + 36 
19 CoreFoundation     0x30fa81d5 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20 
20 CoreFoundation     0x30fa5b79 __CFRunLoopDoObservers + 284 
21 CoreFoundation     0x30fa5ebb __CFRunLoopRun + 730 
22 CoreFoundation     0x30f10ce7 CFRunLoopRunSpecific + 522 
23 CoreFoundation     0x30f10acb CFRunLoopRunInMode + 106 
24 GraphicsServices    0x35bfa283 GSEventRunModal + 138 
25 UIKit       0x337b2a41 UIApplicationMain + 1136 
26 TestApp      0x000ea19d main (main.m:16) 

我的代碼(EasyTableView.m:291)是如下面

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if ([delegate respondsToSelector:@selector(easyTableView:scrolledToOffset:)]) 
     [delegate easyTableView:self scrolledToOffset:self.contentOffset]; 
} 

- (CGPoint)contentOffset { 
    CGPoint offset = self.tableView.contentOffset; 

    if (_orientation == EasyTableViewOrientationHorizontal) 
     offset = CGPointMake(offset.y, offset.x); 

    return offset; 
} 


- (void)setContentOffset:(CGPoint)offset { 
    if (_orientation == EasyTableViewOrientationHorizontal) 
     self.tableView.contentOffset = CGPointMake(offset.y, offset.x); 
    else 
     self.tableView.contentOffset = offset; 
} 

我試圖與殭屍調試和看着的泄漏儀器。但我找不到任何東西。我該如何解決這個問題?在此先感謝

+0

你已經能夠重現這個問題嗎?我建議[啓用異常斷點](https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html)來幫助縮小錯誤。 –

+0

對我來說就像是一個已經釋放對象的委託指針。 –

回答

-1

清除scrollViewtableView代表在斯威夫特:

deinit { 
    self.scrollView.delegate = nil 
    self.tableView.delegate = nil 
}