2013-03-06 65 views
-2

我写了一个setter方法 -前下划线属性的名称,在二传手

- (void)setMyProp:(MyProp *)myProp{ 
    _myProp = myProp; 
} 

如何前属性名下划线投入工作? 我知道这个问题已被问到,但他们是关于用户设置属性名称_myProp,一些约定。我不合成或更改属性名称。这个下划线如何工作?

+1

这里还有另外16:http://stackoverflow.com/q/5582448/ http://stackoverflow.com/q/6049269/ http://stackoverflow.com/q/2371489/ http://stackoverflow.com/q/7174277/ http://stackoverflow.com/q/5659156 http://stackoverflow.com/q/837559/ http://stackoverflow.com/q/ 6146244/ http://stackoverflow.com/q/10651535/ http://stackoverflow.com/q/6124109/ http://stackoverflow.com/q/8145373/ http://stackoverflow.com/ q/3521254/ http://stackoverflow.com/q/6064283/ http://stackoverflow.com/q/9696359/ http://stackoverflow.com/q/5521499/ http://stackoverflow.com/q/5466496/ http://stackoverflow.com/q/ 2114587/ – 2013-03-06 18:56:44

回答

1

如果您正在使用最新版本LLVM的,那么编译器为您创建@synthesize的语法:

@synthesize myProp=_myProp; 

因此,你能够使用_myprop即使你没有明确的合成。

* 旁注:_myProp让你直接访问属性,而self.myProp将调用访问。始终使用self.myProp

+3

你的附注不正确。使用'_myProp'直接访问伊娃。该属性并未完全按照这种方式使用。 – rmaddy 2013-03-06 19:10:31

+2

“Always”也是错误的......你永远不会在setter本身中使用它,不应该在你的init方法中使用它来引用文档;) – HAS 2013-03-06 19:24:01

+0

@rmaddy:我削减了我的旁注。 – 2013-03-07 03:22:29

相关问题