0

我有一个工作应用程序,它有一个 plist 作为数据容器。从 viewdidload 中的 plist 生成字典数组。根据分段控件选择和对象键,从主数组生成三个不同的子数组。然后这些数组填充一个UIickerView.

在使用此应用程序时,用户每次都会选择不同的段,然后应用程序必须每次遍历整个数组以生成所需的子数组。

我是否应该继续在 viewdidload 中生成这些子数组一次,以便不必重复生成它们?

这不是一个大文件(100 个字典)。它会提高应用程序的整体效率吗?

4

1 回答 1

0

您可以在每个用户操作上迭代数百个编号的集合而不会注意到它,但是使用属性缓存子数组也很容易。

惰性初始化在这里是一个很好的模式....

@property (nonatomic, strong) NSArray *myFilteredArray;
//...
@synthesize myFilteredArray=_myFilteredArray;

- (NSArray *)myFilteredArray {

    if (!_myFilteredArray) {
        NSMutableArray *array = [NSMutableArray array];
        // add to array using the filter logic you have already
        _myFilteredArray = [NSArray arrayWithArray:array];
    }
    return _myFilteredArray;
}

如果不出意外,这使您的过滤代码很容易找到,并为每个数组分开,这可能比将它全部埋在 viewDidLoad 中更漂亮。

于 2012-10-27T05:59:16.387 回答