繁体   English   中英

用户默认值 - 目标C.

[英]User Defaults - Objective C

我目前正在开发一个依赖于保存的数据才能正确使用的项目。

它将包含一个保存的数组(id),从0开始并递增每个保存类型的值,然后与此并行工作将是另一个存储每个id所需数据的数组。

我问的是,在我弄乱我的项目之前......因为这是我第一次尝试这样做,我会更好地采取以下方法;

MySQL存储数据类型和id(我也可以做php连接,检索,输入,删除等..使用PDO::)?

一个带有子键的userDefaults数组? ( 如果它是可能的 )

两个数组并行工作,匹配数据类型和id的键?

NSMutableArray *masterArray;
NSArray *loadMaster = [userDefaults arrayForKey:[NSString stringWithFormat: @"%@",userSelectedService]];
if (loadMaster != nil) {
    masterArray = [loadMaster mutableCopy];
} else {
    masterArray = [[NSMutableArray alloc] initWithCapacity:100];
}

或者我是否完全走错了路径以达到我需要达到的目标?

对象图持久性有很多选项; 这取决于您存储的数据量,对象关系的复杂程度,以及您打算如何访问它们。

  1. 您的对象可以采用NSCoding协议,您可以将它们存档到存储在应用程序文件系统中相应位置的数据文件中。
  2. 您可以使用Core Data objc.io上有一篇关于Core Data的特别好的文章
  3. 你可以使用SQLite,有或没有Objective-C抽象层,如FMDB

和别的。 根据您希望存储的数据量, NSUserDefaults可能是一种可接受的解决方案。 但是如果你对存储大量数据感兴趣,那么必须将整个对象图读入内存并不理想。

有两个碰巧同步的阵列听起来像个坏主意。

您对要保存的数据的性质并不十分具体,但对于简单的键:值对,只需使用NSDictionary 如果数据模型(甚至稍微)更复杂,您将喜欢使用CoreData。 学习曲线有点陡峭,但值得你花时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM