合成属性和带下划线前缀的变量:这是什么意思?

lam*_*ade 19 cocoa-touch properties objective-c ios

可能重复:
属性名称上的下划线前缀?

这是什么意思?@synthesize window=_window;我知道一般来说这意味着'某个类'有一个窗口,但为什么要使用_window而不仅仅是window?这是名称空间吗?

Tho*_*mer 25

我将用基本的英语来描述这个编程约定.

在其他语言中,将成员变量命名为previous m,m_或者_将它们与本地声明的变量区分开,并在必要时表示它们应该写入访问器(no classInstance.m_Variable = 5),这是一种非常常见的约定.

如果一个Objective-C编程声明该约定的ivars(他们应该),并使用基本语法@synthesize _window;则该属性的使用变得有些难看:classInstance._window = myWindow[classInstance set_window:myWindow].使用语法@synthesize window=_window;允许的OBJ-C程序员利用一个流行的编程标准(前述与实例变量_,同时具有使用Apple标准属性访问)classInstance.window = myWindow[classInstance setWindow:myWindow].


归档时间:

查看次数:

13466 次

最近记录:

14 年,7 月 前