如何存储&在目标c中检索sqlite数据库中的NSArray对象

时间:2017-02-22 11:55:36

标签: ios objective-c sqlite

我想存储&在sqlite数据库的单列中检索NSArray对象。 有谁知道我怎么能做到这一点?

2 个答案:

答案 0 :(得分:6)

实现此目的的最简单方法是将数组转换为JSON字符串并将字符串存储在数据库中,同时获取数据会将JSON字符串再次转换为数组。

数组到JSON

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arrayObject options:NSJSONWritingPrettyPrinted error:nil]
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);

JSON to Array

NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *arrayObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

答案 1 :(得分:0)

有很多方法可以做到这一点。其中一个简单的方法是使用 componentsJoinedByString 方法。

NSArray* someArray = @[.....];
NSString* result = [someArray componentsJoinedByString:@"<some separator>"];

您也可以 NSKeyedArchiver

NSArray* someArray = @[.....];
NSData* dataToSave = [NSKeyedArchiver archivedDataWithRootObject:someArray];

但是你将在数组中提供确认 NSCoding 协议的对象。

您也可以使用json序列化:

NSArray* someArray = @[.....];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:someArray options:NSJSONWritingPrettyPrinted error:nil]