On Nov 1, 2012, at 9:24 AM, Fritz Anderson wrote:

> On 1 Nov 2012, at 9:55 AM, Keary Suska <cocoa-...@esoteritech.com> wrote:
> 
>> This is normal and expected, as it is a default warning (at least on OS X). 
>> What is the problem, exactly? There is no value whatsoever that I know of to 
>> declare primitive accessors if you don't intend to implement them. 
>> Furthermore, you shouldn't need to declare primitive accessors at all as 
>> they should not be publicly called. Or in other terms, exposing them is 
>> probably a code smell. In any case, Core Data synthesizes them for you 
>> anyway….
> 
> I haven't needed to call primitive accessors in a while, but the fact that 
> Core Data synthesizes them at run time doesn't mean the compiler knows that 
> the methods exist. Last I looked, you had to declare a category containing 
> the primitives the class's own code (not the general public's) needed to 
> call, or the compiler would complain as the OP said.

That is an important distinction that should be included. I didn't talk about 
*private* access as the warnings the OP was complaining about have to do with 
methods declared for (ostensibly) "public" access (i.e. not as a category or 
extension).

> Declare the primitive accessors so the compiler won't complain about their 
> use.
> 
> Declare them in a category so the compiler won't complain that the main 
> implementation doesn't contain their definitions.
> 
> It would be neat if clang inferred the existence of primitives from the 
> presence of dynamic properties in an NSManagedObject subclass, so declaration 
> wouldn't be necessary, but I haven't tried it.

IMHO it seems like a lot of effort for infrequent cases when you can just use 
setPrimitiveValue:forKey...

Keary Suska
Esoteritech, Inc.



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to