是否属于财产?

时间:2015-04-09 04:50:09

标签: objective-c objective-c-2.0 google-style-guide

在目标c的官方谷歌风格指南中,它提到了

  

Dot notation是Objective-C 2.0的惯用风格。它可以在执行简单操作来获取和设置对象的@property时使用,但不应该用于调用其他对象行为。

以下是获取/设置属性的首选方法,而不是使用括号:

NSString *oldName = myObject.name;
myObject.name = @"Alice";

以下是做同样的非首选方式:

NSArray *array = [[NSArray arrayWithObject:@"hello"] retain];
NSUInteger numberOfItems = array.count;  // not a property
array.release;                           // not a property

但是,根据样式指南,count不是属性,因此应使用括号表示法。但是,伯爵真的是一个财产。请问有人可以参加吗?

1 个答案:

答案 0 :(得分:2)

如果您参考NSArray的文档,您会发现count绝对属于

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/#//apple_ref/occ/instp/NSArray/count

听起来风格指南只是出错了。如你所说,点符号是属性访问者的首选 - 但对于getter来说更是如此。 array.count是正确的。

然而,由于在其他语言中,count通常不作为属性存储,因此确实有错误,并且您需要调用方法来检索计数。 NSArray很特别:)