由于cocoa设计模式的原因,NSMutableArray
中的实例方法count
的名字是有歧义的;它可以返回一个保存的变量 count
,或者它可以在每次调用时计算数组中的项目,然后返回(cocoa 规定一个方法只返回变量 的值foo
是 foo
,而不是 getFoo
)。 Objective C 的 NSMutableArray
是在每次调用其 count
方法时实际计算项目数,还是返回预先计算的变量的值?如果这是 Java,我会查看源代码,但我找不到 NSMutableArray
的源代码。我查看了 API,它所说的是这样的:
Returns the number of objects currently in the array.
由于没有上下文,我无法判断这是否意味着它在其中进行了任何计算。
最佳答案
正如您正确指出的那样,不能保证它会以一种方式或另一种方式运行。
但实际上,-[NSArray count]
是一个常量时间操作。您可以通过创建一个小数组和一个大数组并对获取它们的计数所需的时间进行基准测试来自己确认这一点。在像这样的核心数组类上使用 O(n) count
方法会很愚蠢。
关于objective-c - 每次调用 NSMutableArray 的计数方法时,NSMutableArray 是否真的对项目进行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637259/