用户默认值 - 目标C.

时间:2014-04-20 11:35:38

标签: mysql ios objective-c pdo

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

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

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

MySQL存储数据类型和id (我还可以使用PDO ::)进行php连接,检索,输入,删除等工作吗?

带有子键的单个userDefaults数组? (如果可能的话)

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

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

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

2 个答案:

答案 0 :(得分:1)

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

  1. 您的对象可以采用NSCoding协议,您可以将它们存档到存储在应用程序文件系统中相应位置的数据文件中。
  2. 您可以使用Core Data。在objc.io
  3. 上有关于核心数据的特别好的文章
  4. 您可以使用SQLite,有或没有Objective-C抽象层,例如FMDB
  5. 等等。根据您希望存储的数据量,NSUserDefaults可能是可接受的解决方案。但是如果你对存储大量数据感兴趣,那么必须将整个对象图读入内存并不理想。

答案 1 :(得分:1)

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

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