我想存储&在sqlite数据库的单列中检索NSArray对象。 有谁知道我怎么能做到这一点?
答案 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]