Objective-C 101:点符号和对象属性

leo*_*eon 1 properties objective-c

我对Objective-C中的属性有一个非常基本的问题.

我只能通过点符号(Obj.MyProp)来访问对象的属性@synthesize myProp.那是对的吗?

如果我使用自己的setter方法,我将不再能够以点表示法引用属性,这是真的吗?

基本上我正在寻找C#类型的功能,我可以编写自己的自定义getter/setter,并提供一个额外的代码,我需要在设置属性时执行.

Chr*_*own 6

@property创建自动消息声明,就像写作一样

(int)thing;
(void)setThing:(int)value;
Run Code Online (Sandbox Code Playgroud)

@synthesize自动创建实现,即

(int)thing {
    return thing;
}
(void)setThing:(int)value {
    thing = value;
}
Run Code Online (Sandbox Code Playgroud)

如果您自己给出定义,它将覆盖@synthesized版本.因此,只要您正确命名方法,它就可以工作,有或没有@synthesize.

点表示法适用于合成或自定义方法实现.