我需要存储预先配置的值,这些值稍后将用于用户可以从 iOS 应用程序中的表中选择的选项,大概有 5-10 个选项。
就性能和效率而言,存储此类数据的最佳方式是什么?
我可能会想到几种方法,例如:
- 在渲染方法中硬编码
- 大批
- plist 文件
- 核心数据
谢谢
静态数据应存储在将加载值的适当类的静态变量中。
无论您是否从文件加载字典,这里都是如何静态加载字典或数组,因此它只在您的应用程序中完成一次。
//.h
@interface MyApp
+(void) initialize; //will only be called once when the class is loaded
//.m
static NSArray *myListOfStuff;
@implementation MyApp
+(void) initialize {
//...either load your values from a file or hard code the values here
//init and assign values to myListOfStuff
}
//a statis getter for the list
+(NSArray *) listOfStuff {
return myListOfStuff;
}
//Client Code to get the list in your app
NSArray *myList = [MyApp listOfStuff];
//This memory will not be released for the life of the application.
//it will be loaded once and only once - its efficient
如果持久性是你所追求的,谷歌将字典或数组持久化到 plist
如果它真的只有大约 5 到 10 个数据项,那么您可以将它们存储在 NSDictionary 或 Array 中,并将其保存在 plist 文件中并从中读取。您可以使用dictionaryWithContentsOfFile
方法或arrayWithContentsOfFile
分别从 plist 中读取并writeToFile
用于写入。
对于大量数据,您可以查看核心数据。