我有一个工作应用程序,它有一个 plist 作为数据容器。从 viewdidload 中的 plist 生成字典数组。根据分段控件选择和对象键,从主数组生成三个不同的子数组。然后这些数组填充一个UIickerView
.
在使用此应用程序时,用户每次都会选择不同的段,然后应用程序必须每次遍历整个数组以生成所需的子数组。
我是否应该继续在 viewdidload 中生成这些子数组一次,以便不必重复生成它们?
这不是一个大文件(100 个字典)。它会提高应用程序的整体效率吗?
我有一个工作应用程序,它有一个 plist 作为数据容器。从 viewdidload 中的 plist 生成字典数组。根据分段控件选择和对象键,从主数组生成三个不同的子数组。然后这些数组填充一个UIickerView
.
在使用此应用程序时,用户每次都会选择不同的段,然后应用程序必须每次遍历整个数组以生成所需的子数组。
我是否应该继续在 viewdidload 中生成这些子数组一次,以便不必重复生成它们?
这不是一个大文件(100 个字典)。它会提高应用程序的整体效率吗?
您可以在每个用户操作上迭代数百个编号的集合而不会注意到它,但是使用属性缓存子数组也很容易。
惰性初始化在这里是一个很好的模式....
@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 中更漂亮。