iOS sqlite3保存数组NSArray

四个注意点:
1.创建表时,声明字段类型为二进制 blob
NSString *INEditorTableName = @"create table In_Editor(picUrls blob not null)";

2.插入sql语句,把NSArray转换为NSData类型
NSData *dataImageUrls = [NSKeyedArchiver archivedDataWithRootObject:model.imageUrls];

3.不能用 [NSString stringWithFormat: @"sql"];
[_db executeUpdate: @"insert into In_Editor ( picUrls) values (?);",dataImageUrls];

4.读取数据: NSArray *imageArr = [NSKeyedUnarchiver unarchiveObjectWithData:picUrls]

// 如果不注意,上面几点,可能会出现下面错误:
* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFData objectForKey:]: unrecognized selector sent to instance 0x6b46c80'


注:
NSArray 与 NSData的相互转换 二进制
将NSArray转化为NSData类型 :NSData *data = [NSKeyedArchiver archivedDataWithRootObject:Array];
将NSData转化为NSArray类型 :NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];

Integer:值是signedinteger类型,大小可以是1,2,3,4,6,8bytes
REAL:浮点类型
TEXT:以UTF-8,UTF-16BEorUTF-16LE编码存储的字符类型
BLOB:二进制数据




参考:

http://www.4byte.cn/question/22141/saving-nsarray-in-sqlite-and-retrieving-it.html

http://www.chengxuyuans.com/iPhone_IOS/37789.html


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值