我经常发现自己实现了在循环中创建一堆对象并将它们返回到非可变数组中的方法。我通常会这样写:
- (NSArray *)myObjects {
    NSMutableArray *_temporaryArray = [NSMutableArray array];
    for (id foo in foos) {
        // ... 
        // create `myObject` from the information in `foo`
        // ... 
        [_temporaryArray addObject:myObject];
    }
    return [NSArray arrayWithArray:_temporaryArray];
}
不知何故,这种模式感觉不是很优雅(创建一个临时的可变实例似乎是一种开销)。所以现在我正在根据用例寻找更好的实现。
对于这些情况,最好的实现是什么:
- 专注于表现
 - 关注内存消耗
 - 专注于代码简洁。