Let\'s say I have a class called SomeClass with a string property name:
SomeClass
string
@interface SomeClass : NSObject { NSString* name; } @p
Copy should be used for NSString. If it's Mutable, then it gets copied. If it's not, then it just gets retained. Exactly the semantics that you want in an app (let the type do what's best).