1. 程式人生 > >NSUserDefaults 儲存可變陣列,物件。

NSUserDefaults 儲存可變陣列,物件。

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];

其實就是把陣列取出後,轉換成可變陣列,儲存是再轉換成不可變的。