0

Xcodeは自動的に@synthesisを追加するようになったので、対応するivarなしでプロパティを宣言するにはどうすればよいですか?

4

2 に答える 2

1

getterとsetterを実装する必要があります。そうしないと、自動的に合成されず、ivarが自動的に作成されます。

于 2012-10-23T13:08:16.910 に答える
1
@interface Obj : NSObject
@property NSString* str;
@end

@implementation

-(NSString*) str {
    //TODO:
    return @"sdfsdf";
}

-(void) setStr:(NSString*) st {
//TODO:
}

@end

命名規則は単純です。

getter はプロパティと同じ名前 (例では str)、setter は set プレフィックス、つまり setPropertyName (プロパティ名の最初の文字は大文字: setStr:) を持っている必要があります。

また、atomic、retain、strong などの属性を追加することもできますが、プロパティを自分で実装している場合は効果がありませんが、クラスのユーザーにとっては良いヒントになります。

于 2012-10-23T13:17:37.753 に答える