我正在尝试将一个数组添加到 iPhone 上的 SQLite 数据库中。问题是,我不知道用户想要使用多少个数组对象。它可能是 1,也可能是 10。如果我在一个 SQLite 表中分配了 10 个字段,如果用户要使用一个,那将是 9 次浪费,并且它会将上限设置为 10 个条目。

因此,我想到使用单个 VARCHAR 类型字段,并在每个对象之间添加具有特殊字符的数组的每个对象。这将如何表现明智?有什么更好的想法吗?

最佳答案

我的猜测是使用 NSCoder 框架。由于 NSArray 符合 NSCoding 协议(protocol),序列化已经为您完成:

  NSMutableData *data = [[NSMutableData alloc] init];
  NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  [archiver encodeObject:myArray forKey:myArchiveKey];
  [archiver finishEncoding];
  [archiver release];

  // write here data object to a BLOB field of your SQLite db

解码会非常相似

10-06 14:00