ObjC:[self.items枚举...]是每次在块内生成的self.item(派生)?

时间:2012-10-02 00:51:18

标签: ios objective-c-blocks enumeration

在我的一个类中,我有一个名为items的派生属性,它基本上就像:

- (NSArray *)items
{
    [self.unsortedSet.allValues sortedArrayUsingDescriptor:...];
}

然后在其他地方:

[self.items enumerateUsingBlock...{
    // do something with item
}]

在这种情况下,如果self.items有X项,那么枚举块是否会生成自我项目X次?或者更安全:

NSArray *sortedItems = self.items;
[sortedItems enumerateUsingBlock...{}]

1 个答案:

答案 0 :(得分:0)

  

那么枚举块是否会生成X次的self.items?

没有。就一次。这是为了语义和效率。

  

或者它更安全......

语义取决于您的实现。