アークが導入される前は、 @property 宣言を使用せず、次のように iVar のみを使用することがありました。
//Foo.h
@interface Foo : NSObject
{
NSString *str;
}
- (id)initWithStr:(NSString *)newStr;
..
//Foo.m
- (id)initWithStr:(NSString *)newStr
{
if(self = [super init])
{
str = [newStr retain];
}
return self;
}
- (void)dealloc
{
[str release];
[super dealloc];
}
...
@property
宣言を使用したくない場合、ARCでこのようなものを実装するにはどうすればよいですか?