@property definitions with ARC: strong or retain?

one09jason picture one09jason · Oct 17, 2011 · Viewed 32.7k times · Source

Using Xcode 4.2 and ARC, I notice that the auto-generated code for an NSManagedObject still reads like this for properties:

@property (nonatomic, retain) NSString * someString;

1) Shouldn't retain now be replace with strong or weak?

2) Why does the auto-generated code still use retain

3) What is the correct replacement for retain in this property statement?

I'm currently debugging a problem using NSFetchRequest, and I thought this might be the source of the problem. Thoughts?

Answer

matt picture matt · Nov 4, 2011

1) Shouldn't retain now be replace with strong or weak?

No. You cannot replace retain with weak; they are different. And strong is a 100% synonym for retain; they are identical. You can use either, so there is no "should" here. You can replace retain with strong if you like, but you don't have to.

2) Why does the auto-generated code still use retain

Why not? See (1). retain is correct so there is no problem.

3) What is the correct replacement for retain in this property statement?

There is no need to replace retain.

I'm currently debugging a problem using NSFetchRequest, and I thought this might be the source of the problem. Thoughts?

It isn't.