On Oct 10, 2013, at 12:06 AM, Shane Stanley <sstan...@myriad-com.com.au> wrote:

> The problem I'm having is that if I open a file, then add an item, say a 
> folder, then click the close button and choose Revert Changes, I (nearly 
> always) get an exception thrown on the outline view's datasource method 
> -outlineView:objectValueForTableColumn:byItem:. It doesn't happen if the 
> outline view is hidden. I'm using ARC.


On Oct 10, 2013, at 1:51 AM, Shane Stanley <sstan...@myriad-com.com.au> wrote:

> On 10 Oct 2013, at 5:39 PM, Jerry Krinock <je...@ieee.org> wrote:
> 
>> In order to receive -windowWillClose:, the object implementing it must be 
>> the delegate of the window which is closing.
> 
> Yes, I already had -windowWillClose: implemented in my window controller (and 
> -windowShouldClose:), and it gets called fine normally. But the crash I'm 
> seeing is happening before it gets to that point. Maybe this will help:
> 
>    2799 Thread_5984086   DispatchQueue_1: com.apple.main-thread  (serial)
>    + 2799 start  (in libdyld.dylib) + 1  [0x7fff873e35fd]
>    +   2799 main  (in ASObjC Explorer) + 34  [0x100001d72]  main.m:13
>    +     2799 NSApplicationMain  (in AppKit) + 940  [0x7fff89ca9803]
>    +       2799 -[NSApplication run]  (in AppKit) + 553  [0x7fff89cbe9cc]
>    +         2799 -[NSApplication 
> nextEventMatchingMask:untilDate:inMode:dequeue:]  (in AppKit) + 122  
> [0x7fff89cca8db]
>    +           2799 _DPSNextEvent  (in AppKit) + 1434  [0x7fff89ccb28e]
>    +             2799 _BlockUntilNextEventMatchingListInModeWithFilter  (in 
> HIToolbox) + 65  [0x7fff863a8abc]
>    +               2799 ReceiveNextEventCommon  (in HIToolbox) + 173  
> [0x7fff863a8b85]
>    +                 2799 RunCurrentEventLoopInMode  (in HIToolbox) + 226  
> [0x7fff863a8f0d]
>    +                   2799 CFRunLoopRunSpecific  (in CoreFoundation) + 309  
> [0x7fff897e8275]
>    +                     2799 __CFRunLoopRun  (in CoreFoundation) + 776  
> [0x7fff897e87b8]
>    +                       2799 __CFRunLoopDoObservers  (in CoreFoundation) + 
> 391  [0x7fff897f7017]
>    +                         2799 
> __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__  (in 
> CoreFoundation) + 23  [0x7fff897f70a7]
>    +                           2799 __83-[NSWindow 
> _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke1331
>   (in AppKit) + 46  [0x7fff8a43bcd1]
>    +                             2799 
> _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints  (in AppKit) + 884  
> [0x7fff89e6789e]
>    +                               2799 -[NSView displayIfNeeded]  (in 
> AppKit) + 1680  [0x7fff89e0263a]
>    +                                 2799 -[NSView 
> _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:]  (in 
> AppKit) + 2828  [0x7fff89e23209]
>    +                                   2799 -[NSThemeFrame 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 314  [0x7fff89e26201]
>    +                                     2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                       2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                         2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                           2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                             2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                               2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                                 2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                                   2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 6151  [0x7fff89e27f0e]
>    +                                                     2799 -[NSView 
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
>   (in AppKit) + 841  [0x7fff89e26a50]
>    +                                                       2799 -[NSView 
> _recursiveDisplayAllDirtyWithLockFocus:visRect:]  (in AppKit) + 2787  
> [0x7fff89e28fea]
>    +                                                         2799 -[NSView 
> _recursiveDisplayAllDirtyWithLockFocus:visRect:]  (in AppKit) + 1799  
> [0x7fff89e28c0e]
>    +                                                           2799 -[NSView 
> _drawRect:clip:]  (in AppKit) + 3748  [0x7fff89e2a399]
>    +                                                             2799 
> -[NSTableView drawRect:]  (in AppKit) + 1484  [0x7fff89e514c2]
>    +                                                               2799 
> -[NSOutlineView drawRowIndexes:clipRect:]  (in AppKit) + 113  [0x7fff89fe2455]
>    +                                                                 2799 
> -[NSTableView drawRowIndexes:clipRect:]  (in AppKit) + 776  [0x7fff89f87f7d]
>    +                                                                   2799 
> -[NSTableView drawRow:clipRect:]  (in AppKit) + 1629  [0x7fff89f88723]
>    +                                                                     2799 
> -[NSOutlineView _drawContentsAtRow:column:withCellFrame:]  (in AppKit) + 91  
> [0x7fff89fe323f]
>    +                                                                       
> 2799 -[NSTableView _drawContentsAtRow:column:withCellFrame:]  (in AppKit) + 
> 44  [0x7fff89f889ee]
>    +                                                                         
> 2799 -[NSOutlineView preparedCellAtColumn:row:]  (in AppKit) + 52  
> [0x7fff89fe27c8]
>    +                                                                          
>  2799 -[NSTableView preparedCellAtColumn:row:]  (in AppKit) + 399  
> [0x7fff89f88cc8]
>    +                                                                          
>    2799 -[SMSFWOutlineViewController 
> outlineView:objectValueForTableColumn:byItem:]  (in ASObjC Explorer) + 95  
> [0x1000721ff]  SMSFWOutlineViewController.m:82
>    +                                                                          
>      2799 objc_storeStrong  (in libobjc.A.dylib) + 32  [0x7fff8257ac81]
>    +                                                                          
>        2799 objc_retain  (in libobjc.A.dylib) + 18  [0x7fff825657a2]

From your description, it appears that you're presenting a window/sheet when 
the window is asked to close (Save/revert changes?). When the revert option is 
selected, what changes occur to the underlying data supporting the outline view?

Once the window/sheet is dismissed, it looks like the main/document window is 
asked to redraw its contents and the problem occurs there (redrawing the 
outline view). That probably occurs before the -windowWillClose: call takes 
place.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to