Cocoa 当用户对表视图进行编辑并刷新其中的数据时,应用程序崩溃

Cocoa 当用户对表视图进行编辑并刷新其中的数据时,应用程序崩溃,cocoa,nstableview,Cocoa,Nstableview,在我的应用程序中,我使用了某些表视图,如果用户进行并保存更改,它们的数据将在后台线程中刷新 问题是— 当用户对某个文件进行某些编辑时 表行及其数据被刷新 在后台,由于 其他用户,然后是应用程序 撞车 有人能给我一些解决办法吗 以下是事故报告的一部分: Process: RCS [153] Path: /Applications/RCS.app/Contents/MacOS/RCS Identifier: com.tprf.RCS Version

在我的应用程序中,我使用了某些表视图,如果用户进行并保存更改,它们的数据将在后台线程中刷新

问题是—

当用户对某个文件进行某些编辑时 表行及其数据被刷新 在后台,由于 其他用户,然后是应用程序 撞车

有人能给我一些解决办法吗

以下是事故报告的一部分:

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

事故日志上说:

Application Specific Information:
objc_msgSend() selector name: objectForKey:
这意味着您在尝试发送
objectForKey:
消息时崩溃

从崩溃日志中不清楚这是正在崩溃的
tableView:willDisplayCell:forTableColumn:row:
的实现,还是NSTableView查找某些内容以发送该委托消息。如果是前者,那么你可能没有在应该保留或复制词典的地方保留或复制词典。如果是后者,则可能没有将作为表视图委托的对象保留在应该保留的位置

无论哪种方式,Instruments中的Zombies模板都会告诉您它试图向哪个对象发送消息,以及该对象收到了哪些释放和自动释放消息。从这里,您可以确定哪个释放或自动释放消息是不适当的(如果有),或者哪个对象应该保留该对象而不是