On Oct 17, 2008, at 1:59 PM, Ignacio Enriquez wrote:

I think I am beginning to understand this.

What gives you the impression that NSObject (and thus all of its subclasses)
conform to NSCopying?

I think I was wrong... I will read the documentation about this.

A property should be copy when you are interested in the *value* of the
thing being set.

A property should be retain when you are interested in maintaining a
relationship to the thing being set.


How about assign ?

Please refer to the documentation for properties [1] and the object ownership policy [2].

For object types, in a non-garbage collected application (traditional retain/release style memory management) you never want to use assign. It is the equivalent of hand writing an accessor that does a pointer assignment (with no additional memory management) - i.e. it is incorrect.

In a garbage collected application, assign and retain are equivalent. But if the object does conform to NSCopying, it is better (and avoids a compiler warning) to be explicit about whether you meant assign or copy. This provides built-in documentation about your intent.

[1] http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_5_section_3.html#/ /apple_ref/doc/uid/TP30001163-CH17-SW2

[2] 
http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html

- Jim
_______________________________________________

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

This email sent to [EMAIL PROTECTED]

Reply via email to