代码之家  ›  专栏  ›  技术社区  ›  Devarshi

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

  •  0
  • Devarshi  · 技术社区  · 15 年前

    问题是-

    当用户对 在后台,由于 其他用户,然后应用程序 撞车。

    以下是事故报告部分:

    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
    

    谢谢,

    米拉杰

    1 回复  |  直到 15 年前
        1
  •  1
  •   Peter Hosey    15 年前

    事故日志上说:

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

    这意味着你在发送邮件时崩溃了 objectForKey: 信息。

    tableView:willDisplayCell:forTableColumn:row: 这是崩溃,或者是为了发送委托消息而查找某些内容的NSTableView。如果是前者,那么你可能没有保留或复制你应该保留的词典。如果是后者,那么您可能没有保留作为表视图委托的对象。

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