2010-10-09 98 views
0

在我的应用程序已经采取了一定的表视图,如果用户进行并保存更改其数据获取后台线程刷新。应用程序崩溃被刷新它

问题是 -

当用户正在采取一些编辑的 表行和它的数据被刷新的背景 ,由于 做了一些其他的用户,那么应用程序 崩溃的变化。

任何人都可以建议我为它的一些解决方案?

下面是崩溃报告的部分:

Process:   RCS [153] 

Path:   /Applications/RCS.app/Contents/MacOS/RCS 
Identifier:  com.tprf.RCS 

Version:   1.5.10 build-0212 (1.5.10) 
Code Type:  X86 (Native) 
Parent Process: launchd [96] 

Date/Time:  2010-10-07 11:40:15.595 -0700 
OS Version:  Mac OS X 10.6.4 (10F569) 
Report Version: 6 

Interval Since Last Report:   297915 sec 
Crashes Since Last Report:   2 
Per-App Interval Since Last Report: 213604 sec 
Per-App Crashes Since Last Report: 1 
Anonymous UUID:      4037E18D-81EF-461F-95D5-9E7D7C5701A6 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000c0e9bb1a 
Crashed Thread: 0 Dispatch queue: com.apple.main-thread 

Application Specific Information: 
objc_msgSend() selector name: objectForKey: 


Thread 0 Crashed: Dispatch queue: com.apple.main-thread 
0 libobjc.A.dylib     0x97a4aedb objc_msgSend + 27 
1 com.apple.AppKit    0x90c558ec -[NSTableView _delegateWillDisplayCell:forColumn:row:] + 62 
2 com.apple.AppKit    0x90bd29f5 -[NSTableView preparedCellAtColumn:row:] + 1362 
3 com.apple.AppKit    0x90becacc -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 56 
4 com.apple.AppKit    0x90bebb3a -[NSTableView drawRow:clipRect:] + 1131 
5 com.apple.AppKit    0x90beb572 -[NSTableView drawRowIndexes:clipRect:] + 360 
6 com.apple.AppKit    0x90be9f4b -[NSTableView drawRect:] + 1144 
7 com.apple.AppKit    0x90bdfa36 -[NSView _drawRect:clip:] + 3510 
8 com.apple.AppKit    0x90bde6d4 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1600 
9 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
10 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
11 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
12 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
13 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
14 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
15 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
16 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
17 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
18 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
19 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
20 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
21 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
22 com.apple.AppKit    0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421 
23 com.apple.AppKit    0x90bdcbf3 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 711 
24 com.apple.AppKit    0x90bdc767 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 265 
25 com.apple.AppKit    0x90bd90ae -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 3309 
26 com.apple.AppKit    0x90b39d3f -[NSView displayIfNeeded] + 818 
27 com.apple.AppKit    0x90b03050 -[NSWindow displayIfNeeded] + 204 
28 com.apple.AppKit    0x90b34572 _handleWindowNeedsDisplay + 696 
29 com.apple.CoreFoundation  0x996812c2 __CFRunLoopDoObservers + 1186 
30 com.apple.CoreFoundation  0x9963d9bd __CFRunLoopRun + 557 
31 com.apple.CoreFoundation  0x9963d094 CFRunLoopRunSpecific + 452 
32 com.apple.CoreFoundation  0x9963cec1 CFRunLoopRunInMode + 97 
33 com.apple.HIToolbox    0x905ecf9c RunCurrentEventLoopInMode + 392 
34 com.apple.HIToolbox    0x905ecc8d ReceiveNextEventCommon + 158 
35 com.apple.HIToolbox    0x905ecbd6 BlockUntilNextEventMatchingListInMode + 81 
36 com.apple.AppKit    0x90b0aa89 _DPSNextEvent + 847 
37 com.apple.AppKit    0x90b0a2ca -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156 
38 com.apple.AppKit    0x90acc55b -[NSApplication run] + 821 
39 com.apple.AppKit    0x90ac45ed NSApplicationMain + 574 

感谢,

Miraaj

回答

1

崩溃日志说:

Application Specific Information: 
objc_msgSend() selector name: objectForKey: 

这意味着你崩溃而试图发送objectForKey:消息。

从崩溃日志中可以看出,这是否是您的tableView:willDisplayCell:forTableColumn:row:崩溃的实现,或者是NSTableView为了发送委托消息而查找某些内容。如果它是前者,那么你可能不保留或复制字典,你应该。如果它是后者,那么你可能不应该保留表视图委托的对象。

无论哪种方式,在仪器的僵尸模板会告诉你反对它试图将消息发送到,并获得什么释放和自动释放消息对象。从那里,你可以计算出哪些发布或自动发布消息是不适当的(如果有的话),或者应该保留该对象的哪个对象不是。