将NSString数据从sqlite转换为NSArray

时间:2013-10-16 08:33:39

标签: ios objective-c sqlite nsstring nsarray

情况就是这样..

我在NSArray表的一个字段中插入了一个完整的SQLite,现在我检索数据并将其变为字符串。如何将其再次转换为NSArray

这是NSArray中插入SQLite的内容:

"<tbl_news:annyfksM8D:(null)> {\n    \"news_content\" = \"Lorem ipsum dolor sit\";\n    \"news_date\" = \"Sep 23, 2013\";\n    \"news_featuredimage\" = \"uploads/1373124691956-160x120.jpg\";\n    \"news_title\" = \"Lorem Ipsum2\";\n}",

    "<tbl_news:fEgOpdgflF:(null)> {\n    \"news_content\" = \"Lorem ipsum dolor sit.\";\n    \"news_date\" = \"Sep 23, 2013\";\n    \"news_featuredimage\" = \"uploads/2560x1440.jpg\";\n    \"news_title\" = \"Lorem Ipsum3\";\n}"

这是一个来自解析的数组。任何人都可以知道我将如何将其转换为NSArray。我已经尝试了Convert NSString to NSArray,但我认为解决方案不会解决我的问题。

1 个答案:

答案 0 :(得分:-1)

不要将NSArray作为字符串存储到数据库中。将其转换为NSData,将其存储为blob,将其作为NSData检索回来,然后将其转换回NSArray:

// Convert NSArray to NSData
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
...

// Store it as a blob in sqlite
sqlite3_bind_blob(insert_statement, 1, [data bytes], [data length], NULL);

...

// Get the bytes back fromthe database and convert it into an NSArray
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]