2017-02-22 56 views

回答

6

實現此目的的最簡單方法是將數組轉換爲JSON字符串並將該字符串存儲在數據庫中,並在獲取數據時將JSON字符串再次轉換爲數組。

陣列以JSON

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

JSON數組

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

謝謝你的回答對我有用。 –

+0

https://github.com/jmbarnardgh/labqlite和https://github.com/jmbarnardgh/labqlite_model_generator可能能夠幫助你的SQLite部分 –

+0

我也使用庫https://github.com/ccgus/fmdb和https://github.com/nerdyc/FMDBHelpers與SQLite數據庫文件進行交互,並且我有一個包含所需模型的CRUD操作功能的類。這些也是有幫助的。 –

0

這是很多的方式來做到這一點。其中的一個簡單的方法是使用組件的JoinedByString方法。

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] 
相關問題