-1

アークが導入される前は、 @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でこのようなものを実装するにはどうすればよいですか?

4

2 に答える 2

3

ARCは機能します:

- (id)initWithStr:(NSString *)newStr
{
    if(self = [super init])
    {
        str = newStr;
    }
    return self;
}

...そしてdeallocなし:)

于 2012-08-31T11:49:16.687 に答える
-1

.h ファイルで str を宣言します。

 @property (nonatomic, strong) NSString *str;

この変数は で合成できます。mファイルのような@sythesize str;

self.strの割り当てまたは取得に使用できますstr。詳細については、このドキュメントを参照してください。

于 2012-08-31T11:51:57.793 に答える