|
|
1
17
正如您所注意到的,Cocoa风格是使用方法参数名称,如
您应该直接访问实例变量的唯一时间是在
在这些情况下应该直接使用ivar的原因是,getter/setter可能会产生依赖于完全初始化实例的副作用,从而使它们在应用中变得危险
看来,除了
这只剩下最后一个问题了
|
|
|
3
1
这是怎么做的 Apple does it |
|
|
4
1
苹果公司生产的示例代码通常使用一个“u”前缀。我想我也看到了一些
我发现这个惯例很有效。我过去不在乎前缀,但这有时会让人困惑。使用前缀清楚地表明它是一个实例变量。这个
实例变量通常不会被使用,所以如果你觉得“\u1”前缀很烦人,那也没关系,因为你会使用
|
|
5
1
Obj-C不像其他语言那样严格地定义“风格”,这可能是一件好事,也可能是一件坏事,但这意味着大部分时间你都需要自己去寻找一种好的编码风格。 您还可以通过self访问Obj-C中的变量。因此,如果您有一个实例变量测试,您可以通过self->测试,这是合法的,并且永远有效。然而,在大多数Obj-C程序员眼中,它并不美丽。它泄露了一个“秘密”,即对象实际上只是结构(更准确地说,对象引用是指向结构的指针),实例变量实际上是结构成员。这并不是真正的秘密,但Obj-C程序员似乎更喜欢在他们的代码中“隐藏”这一事实。
到目前为止,我试着用前缀my,myName代替name,用前缀self,selfName代替name;起初看起来都很奇怪,但在一段庞大的代码中看起来并不太糟糕。至少马上就被认为是“与众不同”。我还尝试了一个“我”,用iName代替name(或者用iName代替name),但我对这个解决方案不是很满意。 不过,我从不浪费时间考虑方法参数。因为这并不重要。这些变量和其他变量一样,除非它们被声明为常量。它们甚至可以在方法中用于其他目的,因为它对调用方没有影响。例如。
|