Hi Sebastien,

Your code looked like pseudo code, since it lacked spacing. I think you should 
still double check if it is called.

As I said before, if you think it is a bug in appkit, please log it at 
bugreporter.apple.com -- but please include a test app, as I haven't been able 
to reproduce this myself, and this is the first i've heard of the method not 
working.

corbin

On Nov 1, 2011, at 10:04 AM, Sebastien Boisvert wrote:

> As you can see from the sample code I provided, I call -beginUpdates and 
> -endUpdates around it.
> 
> Full stack trace below. Could the fact that it was being done during a 
> notification being handled have something to do with it?
> 
> I was able to avoid the exception by calling the code async on the main 
> thread, but that's not really a workable solution for me.
> 
> 
> Stack Trace:(
> 0   CoreFoundation                      0x00007fff8672c286 
> __exceptionPreprocess + 198
> 1   libobjc.A.dylib                     0x00007fff8aad4d5e 
> objc_exception_throw + 43
> 2   CoreFoundation                      0x00007fff8672c0ba +[NSException 
> raise:format:arguments:] + 106
> 3   Foundation                          0x00007fff8c4757d3 
> -[NSAssertionHandler 
> handleFailureInMethod:object:file:lineNumber:description:] + 169
> 4   AppKit                              0x00007fff8e89f32b -[NSTableView 
> _doUpdatedWorkWithHandler:] + 133
> 5   AppKit                              0x00007fff8ebd5f35 -[NSOutlineView 
> removeItemsAtIndexes:inParent:withAnimation:] + 214
> 6   MyFrmwrk                             0x00000001003b0ddb -[MyOutlineView 
> endEditing] + 347
> 7   MyFrmwrk                             0x00000001003b2177 
> -[MyCustomEditView controlTextDidEndEditing:] + 215
> 8   Foundation                          0x00007fff8c3c0de2 
> __-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_1 + 
> 47
> 9   CoreFoundation                      0x00007fff866d4e0a 
> _CFXNotificationPost + 2634
> 10  Foundation                          0x00007fff8c3ad097 
> -[NSNotificationCenter postNotificationName:object:userInfo:] + 65
> 11  AppKit                              0x00007fff8ecc5f67 -[NSTextField 
> textDidEndEditing:] + 374
> 12  Foundation                          0x00007fff8c3c0de2 
> __-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_1 + 
> 47
> 13  CoreFoundation                      0x00007fff866d4e0a 
> _CFXNotificationPost + 2634
> 14  Foundation                          0x00007fff8c3ad097 
> -[NSNotificationCenter postNotificationName:object:userInfo:] + 65
> 15  AppKit                              0x00007fff8ed1d361 
> -[NSTextView(NSPrivate) _giveUpFirstResponder:] + 438
> 16  AppKit                              0x00007fff8ed0123e 
> -[NSTextView(NSKeyBindingCommands) insertNewline:] + 537
> 17  CoreFoundation                      0x00007fff8671ba1d -[NSObject 
> performSelector:withObject:] + 61
> 18  AppKit                              0x00007fff8ec1bbad -[NSResponder 
> doCommandBySelector:] + 62
> 19  AppKit                              0x00007fff8ecf690e -[NSTextView 
> doCommandBySelector:] + 198
> 20  AppKit                              0x00007fff8eb4ffff 
> -[NSKeyBindingManager(NSKeyBindingManager_MultiClients) 
> interpretEventAsCommand:forClient:] + 1799
> 21  AppKit                              0x00007fff8eea1b4a 
> -[NSTextInputContext handleEvent:] + 747
> 22  AppKit                              0x00007fff8ed6deaf -[NSView 
> interpretKeyEvents:] + 248
> 23  AppKit                              0x00007fff8ece6c65 -[NSTextView 
> keyDown:] + 691
> 24  AppKit                              0x00007fff8e7c6544 -[NSWindow 
> sendEvent:] + 7430
> 25  AppKit                              0x00007fff8e75e68f -[NSApplication 
> sendEvent:] + 5593
> 26  AppKit                              0x00007fff8e6f4682 -[NSApplication 
> run] + 555
> 27  AppKit                              0x00007fff8e97380c NSApplicationMain 
> + 867
> 28  Daylite                             0x0000000100009862 main + 34
> 29  Daylite                             0x0000000100009834 start + 52
> 30  ???                                 0x0000000000000005 0x0 + 5
> 
> 
> 
> 
>> ________________________________
>> From: Corbin Dunn <corb...@apple.com>
>> To: Sebastien Boisvert <sebastienboisv...@yahoo.com>
>> Cc: cocoa-devDev <cocoa-dev@lists.apple.com>
>> Sent: Monday, October 24, 2011 11:45:27 AM
>> Subject: Re: inserting/removing items in NSOutlineView subclass
>> 
>> hi sebastien,
>> Are you sure you are calling beginUpdates? At what point are you doing the 
>> code below in your subclass? Also, can you post the complete stack trace?
>> 
>> If you think it is a bug in appkit, please log it at bugreporter.apple.com 
>> -- but please include a test app, as I haven't been able to reproduce this 
>> myself, and this is the first i've heard of the method not working.
>> 
>> corbin
>> 
>> On Oct 22, 2011, at 7:56 PM, Sebastien Boisvert wrote:
>> 
>>> I have an NSOutlineView subclass that does the following to remove a row:
>>> 
>>> [self beginUpdates];
>>> [selfremoveItemsAtIndexes:[NSIndexSetindexSetWithIndex:editingRow] 
>>> inParent:nilwithAnimation:NSTableViewAnimationEffectNone];
>>> [self endUpdates];
>>> 
>>> However, when the above runs, I get the following exception:
>>> 
>>> *** Assertion failure in -[MyOutlineView _doUpdatedWorkWithHandler:], 
>>> /SourceCache/AppKit/AppKit-1138.23/TableView.subproj/NSTableView.m:14634
>>> Exception detected while handling key input.
>>> Exception Name: NSInternalInconsistencyException
>>> Exception Reason: NSTableView Error: Insert/remove/move only works within a 
>>> -beginUpdates/-endUpdates block.
>>> 
>>> 
>>> Huh? The row index is valid, I'm not overriding any of the above methods, 
>>> and the calls are balanced, so I don't know why I get this.
>>> 
>>> I get the same thing if I try to add a row, but discovered that if I have 
>>> the outline view's delete do it instead, that works, but don't know/explain 
>>> why. Unfortunately I can't use that workaround in the situation I use the 
>>> code above for.
>>> 
>>> Any ideas?
>>> 
>>> 
>>> Here's the relevant part of the stack trace:
>>> 
>>> 0   CoreFoundation                      0x00007fff8672c286 
>>> __exceptionPreprocess + 198
>>> 1   libobjc.A.dylib                     0x00007fff8aad4d5e 
>>> objc_exception_throw + 43
>>> 2   CoreFoundation                      0x00007fff8672c0ba +[NSException 
>>> raise:format:arguments:] + 106
>>> 3   Foundation                          0x00007fff8c4757d3 
>>> -[NSAssertionHandler 
>>> handleFailureInMethod:object:file:lineNumber:description:] + 169
>>> 4   AppKit                              0x00007fff8e89f32b -[NSTableView 
>>> _doUpdatedWorkWithHandler:] + 133
>>> 5   AppKit                              0x00007fff8ebd5f35 -[NSOutlineView 
>>> removeItemsAtIndexes:inParent:withAnimation:] + 214
>>> _______________________________________________
>>> 
>> 
>> 
>> 
> _______________________________________________
> 
> 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:
> http://lists.apple.com/mailman/options/cocoa-dev/corbind%40apple.com
> 
> This email sent to corb...@apple.com

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to