Re: Release mode bindings crash and release pools
Re: Release mode bindings crash and release pools
- Subject: Re: Release mode bindings crash and release pools
- From: Jonathan Mitchell <email@hidden>
- Date: Sat, 17 Jun 2017 11:32:51 +0100
> On 16 Jun 2017, at 23:18, Quincey Morris
> <email@hidden> wrote:
>
> On Jun 16, 2017, at 14:41 , Jonathan Mitchell <email@hidden> wrote:
>>
>> I sometimes use the default NSObject bind: to set up a simple one way
>> operation as you describe as opposed to a discrete observation.
>
> With macOS 10.13, the new block/closure-based KVO “addObserver” method is
> probably an easier way, although you do have to remove it manually.
>
The block/closure improvements are long overdue IMHO.
I use a home brewed approach using BPBlockValueTransformer : NSValueTransformer
with bindings that gives a lot more flexibility.
A trivial example involving a closure would be:
BPBlockValueTransformer *blockValueTransformer = [BPBlockValueTransformer
valueTransformerWithBlock:^id(NSNumber *value) {
strongify(self);
return ([value boolValue] || self.isFree)? @“Freedom for all" :
@“Freedom for no-one";
}];
[self.titleTextField bind:NSValueBinding toObject:self.repObjCon
withKeyPath:@"selection.isHidden" options:@{NSValueTransformerBindingOption :
blockValueTransformer}];
The downside is that you cannot establish the binding in the NIB.
_______________________________________________
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