[WORKAROUND] Re: new NSTreeController bug in 10.5.7?
[WORKAROUND] Re: new NSTreeController bug in 10.5.7?
- Subject: [WORKAROUND] Re: new NSTreeController bug in 10.5.7?
- From: Dave Fernandes <email@hidden>
- Date: Sat, 20 Jun 2009 18:41:26 -0400
This problem occurs when observing the NSTreeController keypath:
arrangedObjects.myAttributeName
As far as I can tell, I should be able to do this. Bug report filed.
Workaround -
The reason for observing that keypath was to tell whether any of the
values of my attribute changed so that I could update a custom view.
So instead of observing the tree controller, I added an
NSArrayController that fetches the same entity from the MOC. Now I can
observe the array controller's arrangedObjects.myAttributeName without
crashes.
Dave
On May 17, 2009, at 12:57 PM, Dave Fernandes wrote:
On second glance, the problem is not with adding a new child object,
but with updating any of the child object's attributes that are
bound to an NSTableColumn in the outline view (after the child has
been added to the object graph).
On May 16, 2009, at 10:38 PM, Dave Fernandes wrote:
I just discovered a bug in my app that is always reproducible in
10.5.7, and non-existent in 10.5.6. Wondering if anyone else has
come across this.
Application uses: CoreData with bindings, NSTreeController with an
NSOutlineView.
Steps to reproduce: outline view has a top level object with one or
more child objects.
- Add another child object to the existing parent.
- Crash... (stack trace below is with zombies enabled)
Console log:
2009-05-16 22:21:14.040 MyApp[331:813] *** -
[NSTreeControllerTreeNode representedObject]: message sent to
deallocated instance 0xfae69b0
Stack trace:
#0 0x94241867 in ___forwarding___
#1 0x94241972 in __forwarding_prep_0___
#2 0x93c0ce4c in -[NSTreeController
observeValueForKeyPath:ofObject:change:context:]
#3 0x92b032ee in NSKVONotify
#4 0x92b032ee in NSKVONotify
#5 0x92a7f5e2 in -[NSObject(NSKeyValueObserverNotification)
didChangeValueForKey:]
#6 0x91982ac7 in -[NSManagedObject didChangeValueForKey:]
#7 0x919813b2 in _sharedIMPL_setvfk_core
#8 0x91983c13 in -[NSManagedObject setValue:forKey:]
#9 0x00004f65 in -[Analysis setDoubleValue:forKey:] at Analysis.m:323
#10 0x00058371 in -[AnalysisCache
copyResultsToAnalysis:forManualSegment:] at AnalysisCache.mm:296
#11 0x00019357 in -[CacheTask taskCompleted:] at CacheTask.m:98
#12 0x00018c82 in -[TaskDispatcher taskCompleted:] at
TaskDispatcher.m:180
#13 0x00018e91 in -[TaskDispatcher handlePortMessage:] at
TaskDispatcher.m:216
#14 0x92abce93 in __NSFireMachPort
#15 0x9419e1c5 in __CFMachPortPerform
#16 0x941c2888 in CFRunLoopRunSpecific
#17 0x941c2c78 in CFRunLoopRunInMode
#18 0x945ac28c in RunCurrentEventLoopInMode
#19 0x945abfde in ReceiveNextEventCommon
#20 0x945abf19 in BlockUntilNextEventMatchingListInMode
#21 0x93608d0d in _DPSNextEvent
#22 0x936085c0 in -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:]
#23 0x936015fb in -[NSApplication run]
#24 0x935ce834 in NSApplicationMain
#25 0x000066d6 in main at main.m:25
The release build seems to crash when a representedObject message
is sent to some non-NSTreeNode object such as a NSCFSet or
NSFetchRequest (the exact object receiving this message varies from
trial to trial).
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden