Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objective C - Custom setter with ARC?

Here is how I used to write a custom retained setter before:

- (void)setMyObject:(MyObject *)anObject {    [_myObject release], _myObject =  nil;    _myObject = [anObject retain];     // Other stuff } 

How can I achieve this with ARC when the property is set to strong. How can I make sure that the variable has strong pointer?

like image 907
aryaxt Avatar asked Apr 06 '12 01:04

aryaxt


1 Answers

The strong takes care of itself on the ivar level, so you can merely do

- (void)setMyObject:(MyObject *)anObject {    _myObject = anObject;    // other stuff } 

and that's it.

Note: if you're doing this without automatic properties, the ivar would be

MyObject *_myObject; 

and then ARC takes cares of the retains and releases for you (thankfully). __strong is the qualifier by default.

like image 63
Dan Rosenstark Avatar answered Oct 05 '22 05:10

Dan Rosenstark