我刚刚开始学习 Objective-C,我想要学习的一件事是良好的属性使用。我目前正在尝试使用自定义 setter 创建一些属性。这就是我已经走了多远:
@interface MyClass : NSObject
@property (nonatomic, assign) int myNumber;
@end
@implementation MyClass
@dynamic myNumber;
- (int)myNumber {
return ???;
}
- (void)setMyNumber:newNumber {
myNumber = newNumber;
// custom stuff here
}
我真的只是想实现一个自定义的setter,我对默认的getter很满意。但是,如何直接访问该变量呢?如果我输入“return self.myNumber”,那不是会调用getter方法并无限循环吗?
最佳答案
仅当使用x.p
表示法时才会调用属性访问函数。您只需使用 p
即可访问支持该属性的实例变量(在 Objective C 中,所有成员都在作用域内具有类实例变量)。如果您确实愿意,也可以通过指针引用符号 ->
进行访问。因此,这两个中的任何一个:
return p;
return self->p;
但是,您不需要在此处使用@dynamic
。 @synthesize
很聪明,如果您没有提供默认值,它只会创建默认值。所以请随意
@synthesize p;
在本例中,这将创建 getter,但不会创建 setter。
关于objective-c - 在Obj-C中创建Properties,默认的Getter怎么写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063194/