Re: Problem using bindings with deep key paths
Re: Problem using bindings with deep key paths
- Subject: Re: Problem using bindings with deep key paths
- From: Quincey Morris <email@hidden>
- Date: Wed, 20 Jan 2010 15:05:09 -0800
On Jan 20, 2010, at 14:46, Kyle Sluder wrote:
> On Wed, Jan 20, 2010 at 2:37 PM, Gwynne Raskind <email@hidden> wrote:
>> As usual, the blindingly obvious proves to be the problem. I had ensured perfect KVC/KVO compliance, and I was using the compliant accessors everywhere except for one place: the delegate's -awakeFromNib method where I create the Player object in the first place. I declared the property readwrite in the class extension and changed player = [[Player alloc] init] to self.player = [[[Player alloc] init] autorelease], and suddenly it all worked. (Though it vaguely annoys me that I have to add a spurious retain/autorelease to the Player object.)
>
> You don't technically have to. You could do:
>
> [self willChangeValueForKey:@"player"];
> player = [[Player alloc] init];
> [self didChangeValueForKey:@"player"];
... which is unexceptionable, but another alternative might be:
Player* aPlayer = [[Player alloc] init];
self.player = aPlayer;
[aPlayer release];
although (given a couple of contemporaneous threads on the subject of autorelease and its subtleties, and given that I'm sitting smugly on the GC side of the fence) I wouldn't be surprised to find out that the latter suggestion sucks.
_______________________________________________
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