Re: @property question
Re: @property question
- Subject: Re: @property question
- From: Craig Hopson <email@hidden>
- Date: Tue, 13 May 2008 10:49:35 -0600
No, not using bindings, but good point & yes, the param type was a typo.
While everything 'seems' to be working now, the info that I got in the
debugger when I was seeing problems looked suspiciously like the state
of things when an object has been released but is then referenced. I
need to dig deeper and make sure that I'm not going to be bitten later
on - like in production code...
Thanks for all of the input.
-Craig
On May 12, 2008, at 5:20 PM, Quincey Morris wrote:
On May 12, 2008, at 15:19, Craig Hopson wrote:
I think I've been the victim of some side effect that I cannot
track down. With no other changes, I tried again with each style,
[ self.fieldArray addObject:inFoo ];
[ fieldArray addObject:inFoo ];
replacing all occurrences for each test, and both work - what I
would have expected.
Incidentally, neither version is KVO-compliant. If you happen to
have something (e.g. a NSArrayController) bound to the array
property, to show Foos in the user interface, the effect of
addObject (and therefore addFoo) will be to leave what's displayed
out of date. This could possibly lead to unpredictable behavior or a
crash.
The KVO-compliant way to add something to an array property would be
something like this:
- (void)addFoo:( Bar* )inFoo
{
[ [self mutableArrayValueForKey:@"fieldArray"] addObject:inFoo ];
}
P.S. I just noticed that the inFoo looks like it needs to be a Foo*,
not a Bar*. I assume this was just a typo when you stripped down
your example for posting?
_______________________________________________
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