Is there any difference between (A) and (B) below?
(Assume NON ARC, if it matters)
// --- (A) ---
@interface Zoo : NSObject{}
@property (copy) Dog *dog;
@end
//..... then somewhere
someZoo.dog = another_dog;
// --- (B) ---
@interface Zoo : NSObject{}
@property (assign) Dog *dog;
@end
//..... then somewhere
someZoo.dog = [another_dog copy];
If the answer is negative, is there any advantage of using (A)?
I find approach (B) less error prone, since the explicit code shows exactly what is going on, but I'm not expert, hence the question.