Re: Managed Object with Getter
Re: Managed Object with Getter
- Subject: Re: Managed Object with Getter
- From: Jim Correia <email@hidden>
- Date: Wed, 13 Jan 2010 09:14:27 -0500
On Jan 13, 2010, at 8:39 AM, Richard Somers wrote:
> On Jan 13, 2010, at 1:17 AM, Kyle Sluder wrote:
>
>> This code cannot generate that error because it doesn't send any
>> messages. You need to post the code to which the error actually
>> refers.
>
> This works.
>
> @property (nonatomic, retain) NSNumber *selected;
>
> if ([[self selected] boolValue]) { ... }
>
> This produces error "unrecognized selector sent to instance".
>
> @property (nonatomic, retain, getter=isSelected) NSNumber *selected;
>
> if ([[self isSelected] boolValue]) { … }
Assuming you are using @dynamic and relying on Core Data to generate the accessors for you, that isn’t going to work. Core Data doesn’t support the isPropertyName getter style.
This style is typically used for non-object BOOL values. If you use it for an NSNumber attribute, you run the risk of someone familiar with the pattern assuming it is a BOOL property and writing
if ([managedObject isSelected]) {
}
which will of course be be true whenever the property is non-nil, no regardless of the actual value.
If you want or need to use custom getters/setters, you’ll have to provide your own accessors rather than relying on the @dynamic generated ones.
- Jim_______________________________________________
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