【问题标题】:Save and retrive NSMutableArray in sqlite in ios在 ios 的 sqlite 中保存和检索 NSMutableArray
【发布时间】:2014-10-19 10:35:23
【问题描述】:

我有一个 NSMutableArrayNSDictionary,我想将其存储在 iOS 的 sqlite 中。我试过了:

在.h

@property (nonatomic,retain) NSMutableArray *mutArrayOfDict;

在 sqlite 插入:

NSData *wrtData = [NSKeyedArchiver archivedDataWithRootObject:mutArrayOfDict];
sqlite3_bind_blob(statement, 5, wrtData, -1, SQLITE_TRANSIENT);

在 sqlite 读取:

blob = sqlite3_column_blob(statement, 5);
bytes = sqlite3_column_bytes(statement, 5);
readData = [NSData dataWithBytes:blob length:bytes];

mutArrayOfDict = [NSKeyedUnarchiver unarchiveObjectWithData:readData]; //Exception

异常

[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive....

我试过了:

[NSPropertyListSerialization propertyListFromData:readData
                                 mutabilityOption:NSPropertyListImmutable
                                           format:NULL
                                 errorDescription:nil];

这会在 mutArrayOfDict 的 0 索引处插入一个空值。 请帮忙!!

【问题讨论】:

  • 我认为你需要学习序列化,然后再应用它。

标签: ios objective-c iphone sqlite


【解决方案1】:

如果我没听错的话,你想从 nsmutablearray 填充一个 sqlite 表,那么为什么不这样做呢?

How to add nsmutable array into sqlite database table

for (int i = 0; i < [mutArray count]; i++)
    {
       NSString *string = [mutArray objectAtIndex:i];
       // insert query
       insert into table_name ('string') values(column_name);
    }

//iUser

【讨论】:

  • 谢谢明格包。事实上,我想将完整的可变数组保存在数据库的单个单元格中,而不是用数组的项目填充数据库的列。我在“stackoverflow.com/questions/16355079/…”上提到了 Divz 的回答
  • @Krish 哦,我看到 np 所以你有答案了吗?
  • 不完全是,我关注的链接谈到了 NSArray。我需要的是 NSMutable 数组。我知道这不应该是个问题。但是我的代码在我上面的问题中崩溃了。
  • @Krish 你能不能不做这样的事情 NSArray *array = [NSArray arrayWithArray:mutableArray];
  • 刚刚尝试了您的建议。同一行的相同异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2013-04-24
相关资源
最近更新 更多