转换SQLite / FMDB NSArray格式

时间:2013-01-04 08:37:45

标签: objective-c sqlite nsstring nsarray fmdb

关于SQLite和FMDB的问题,我要将NSArray * insertParams保存到SQLite中,insertParams的格式如下:

  

(           {           action =“\ U8d5e \ U540c \ U4e86 \ U8be5 \ U56de \ U7b54”;           content =“\ U8c22zolo \ U9080 \ Uff0c \ U65b0 \ U5e74 \ U5feb \ U4e50~ \ U81ea \ U5df1 \ U548c \ U5bb6 \ U4eba \ U8eab \ U4f53 \ U5b89 \ U5eb7 \ U3002”;           “post_id”= 114834;           “post_type”=“a”;           得分= 1;           title =“\ U5927 \ U5bb6 \ U6765 \ U4e3a2013 \ U5e74 \ U7684 \ U65b0 \ U5e74 \ U8bb8 \ U613f \ U5427 \ Uff1f \ U4f60 \ U7684 \ U613f \ U671b \ U662f \ U4ec0 \ U4e48 \ Uff1f”;           user = {               “avatar_url”=“/statics/images/thumb_d04a6fc94214e61a0f35f70b50387b18.jpg”;               id = 7151;               name = abc;               nickname = abc;           };       },           {           行动           ................           ................           ................

但是,当我从SQLite中检索数据时,因为没有这样的arrayForColumn函数,因此我必须使用stringForColumn函数来获取数据,如下所示:

  

NSString * content = [results stringForColumn:@“content”];

     

[resultArray addObject:content];

但是resultArray的格式已经改为:

  

(           “{\ n action = \”\ U8d5e \ U540c \ U4e86 \ U8be5 \ U56de \ U7b54 \“; \ n content =   \ “\ U8c22zolo \ U9080 \ Uff0c \ U65b0 \ U5e74 \ U5feb \ U4e50〜\ U81ea \ U5df1 \ U548c \ U5bb6 \ U4eba \ U8eab \ U4f53 \ U5b89 \ U5eb7 \ U3002 \”; \ n   \“post_id \”= 114834; \ n \“post_type \”= \“a \”; \ n得分= 1; \ n
  title =   \ “\ U5927 \ U5bb6 \ U6765 \ U4e3a2013 \ U5e74 \ U7684 \ U65b0 \ U5e74 \ U8bb8 \ U613f \ U5427 \ Uff1f \ U4f60 \ U7684 \ U613f \ U671b \ U662f \ U4ec0 \ U4e48 \ Uff1f \”; \ n   user = {\ n \“avatar_url \”=   \ “/静力学/图像/ thumb_d04a6fc94214e61a0f35f70b50387b18.jpg \”; \ n
  id = 7151; \ n name = abc; \ n nickname = abc; \ n}; \ n}“,           “{\ n动作           ................           ................           ................

有人能告诉我如何将结果格式化为原始NSArray * insertParams的格式吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

你过度思考这个问题了。 FMDB(以及SQL)非常适合处理NSData实例,因此您只需使用NSKeyed(Un)Archiver来转换NSData对象和从NSData对象转换到您的数组。检索它是在执行查询后调用-dataForColumn的问题。