NSUserDefaults 儲存可變陣列,物件。
阿新 • • 發佈:2019-01-09
NSUserDefaults :是資料持久化的一種方式,用途比較廣泛。
如何用它儲存物件呢?物件是不能直接儲存的,但是NSUserDefaults可以儲存NSData型別的資料,所以要儲存物件需要先把物件轉化成NSData型別資料。
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model];
這樣就可以儲存了。但是需要記得物件要遵循NSCopying,NSCoding協議。
NSUserDefaults 儲存可變陣列。
YFMapdataModel *model = [[YFMapdataModel alloc] init]; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model]; NSMutableArray *likeArray = [[[NSUserDefaults standardUserDefaults]objectForKey:@"likeArray"] mutableCopy]; if (!likeArray) { likeArray = [[NSMutableArray alloc]initWithCapacity:0]; } [likeArray addObject:data]; NSArray *saveArray = [NSArray arrayWithArray:likeArray]; [[NSUserDefaults standardUserDefaults]setObject:saveArray forKey:@"likeArray"]; [[NSUserDefaults standardUserDefaults] synchronize];
其實就是把陣列取出後,轉換成可變陣列,儲存是再轉換成不可變的。