12
インスタンス変数を作成せずにプロパティを追加しようとしています。これは可能ですか?あるいは、財産ではない方法で同様のことをすることができますか?インスタンス変数を持たないプロパティを追加しますか?
例:上記のコードで
@interface RandomClass()
@property (nonatomic) int value;
@end
@implementation RandomClass
@synthesize value = _value;
// Here I override the default methods @synthesize
-(int)value
{
return 8; // Actually I'm returning something more complex, so a "define" won't work
}
-(void)setValue:(int)value
{
self.someOtherValue = value;
}
、私はインスタンス変数_value
を使用していませんよ!変数を作成せずにこれを行う方法はありますか?
宣言されたivarに裏付けされているかどうかにかかわらず、プロパティを宣言する場合は、それに対して '@ synthesize'宣言または' @ dynamic'宣言を持たなければなりません。 OPにはおそらく '@dynamic'宣言があります。そして、その場合、コードで彼のコメントが何を言っているのか、彼はおそらく宣言されたivarは必要ないでしょう。 – kamprath
これは私が探していたものです!よかった。ありがとう! – tomidelucca
@claireware:逆に、もしコンパイラがメソッドが実装されているのを見ることができれば、 '@ dynamic'の必要はありません。 ["Property Implementation Directives"(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW9)を参照してください。 ):
–