Hi all, I have problem with a NSTableView bound to an NSArrayController bound to an NSMutableArray in my controller class.
After the following sequence I get a crash: 1) start application 2) request download of data 3) populate data into mutable array 4) show the view 5) ask for another download 6) removeobjects from the array 7)add new objects to array I get the following crash on the remove: 2010-01-18 23:59:44.614 xxx[8944:5537] An uncaught exception was raised 2010-01-18 23:59:44.615 xxx[8944:5537] *** Collection <NSConcreteHashTable: 0x2003e53a0> was mutated while being enumerated.NSHashTable (%@) { } ' *** Call stack at first throw: ( 0 CoreFoundation 0x00007fff85b48444 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x00007fff849cf0f3 objc_exception_throw + 45 2 CoreFoundation 0x00007fff85b9f66f __NSFastEnumerationMutationHandler + 303 3 Foundation 0x00007fff81684839 -[NSConcreteHashTable countByEnumeratingWithState:objects:count:] + 78 4 AppKit 0x00007fff832891fb -[_NSModelObservingTracker clearAllModelObjectObserving] + 308 5 AppKit 0x00007fff83363c2f -[_NSModelObservingTracker setIndexReferenceModelObjectArray:clearAllModelObjectObserving:] + 42 6 AppKit 0x00007fff834043c0 -[NSTableBinder _updateContent] + 89 7 AppKit 0x00007fff83404280 -[NSTableBinder _observeValueForKeyPath:ofObject:context:] + 91 8 AppKit 0x00007fff83404093 -[NSTableBinder observeValueForKeyPath:ofObject:change:context:] + 68 9 Foundation 0x00007fff8168718d -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] + 991 10 AppKit 0x00007fff83286132 -[NSController _notifyObserversForKeyPath:change:] + 218 11 AppKit 0x00007fff8338fceb -[NSArrayController didChangeValuesForArrangedKeys:objectKeys:indexKeys:] + 63 12 AppKit 0x00007fff8336417b -[NSArrayController setContent:] + 899 13 AppKit 0x00007fff83402129 -[NSArrayDetailBinder _refreshDetailContentInBackground:] + 1301 14 Foundation 0x00007fff81680d8e NSKeyValueDidChange + 458 15 Foundation 0x00007fff817531b5 -[NSObject(NSKeyValueObserverNotification) didChange:valuesAtIndexes:forKey:] + 134 16 Foundation 0x00007fff8174bbc9 -[NSKeyValueNotifyingMutableArray removeObjectAtIndex:] + 170 17 CoreFoundation 0x00007fff85b54b2e -[NSMutableArray removeAllObjects] + 62 18 VATSpy 0x000000010000ed01 -[BBSControllersViewController loadValues] + 282 19 VATSpy 0x000000010000e12f -[BBSMainWindowController loadComplete:] + 695 20 VATSpy 0x0000000100004912 -[BBSDataMgr loadDataFile:] + 3851 21 Foundation 0x00007fff8166de99 __NSThread__main__ + 1429 22 libSystem.B.dylib 0x00007fff814c2f8e _pthread_start + 331 23 libSystem.B.dylib 0x00007fff814c2e41 thread_start + 13 ) Code is: BBSDataMgr *mgr = [BBSDataMgr sharedManager]; @try { if ([mgr clientControllers] != nil) { [[mgr updateLock] lock]; NSArray *arr = [[mgr clientControllers] allValues]; if ([controllers count] >0]) [[[self mutableArrayValueForKey:@"controllers"] removeAllObjects]; [[self mutableArrayValueForKey:@"controllers"] addObjectsFromArray:arr]; [myTableView reloadData]; } } @finally { [[mgr updateLock] unlock]; } Grant _______________________________________________ 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