我想在保存NSUserDefaults的視圖控制器的陣列,但我不知道如何:如何將數組保存到NSUserDefaults?
[[NSUserDefaults standardUserDefaults] setObject:tabBarController.viewControllers forKey:@"tabOrder"];
當我看了上面的線,我tabBarController.viewControllers是空白。
我想在保存NSUserDefaults的視圖控制器的陣列,但我不知道如何:如何將數組保存到NSUserDefaults?
[[NSUserDefaults standardUserDefaults] setObject:tabBarController.viewControllers forKey:@"tabOrder"];
當我看了上面的線,我tabBarController.viewControllers是空白。
該數組中的視圖控制器不可序列化,因此不會保存到NSUserDefaults
。
值參數可以是唯一屬性列表對象:NSData的,的NSString,的NSNumber,NSDate的,NSArray中,或NSDictionary的。對於NSArray和NSDictionary對象,其內容必須是屬性列表對象。請參閱「屬性列表編程指南」中的「什麼是屬性列表?」。
您應該在下一次加載時重新初始化您的視圖控制器。然而,你可以將他們的數據序列化到NSUserDefaults
到一些自定義字段。
ERE可以保存的對象與NSUserDefault ..
[NSUserDefaults的standardUserDefaults]的setObject:[的NSKeyedArchiver archivedDataWithRootObject:self.flipsideView.zoznamFunkcii] forKey:@ 「的NSMutableArray」]; [[NSUserDefaults standardUserDefaults] synchronize];
和你使編碼器和解碼器方法
(ID)的initWithCoder:(NSCoder *)譯碼器{ 如果(個體= [超級INIT]){ self.toolResult = [解碼器decodeObjectForKey:@ 「OBJ1」]; self.toolNotes = [decoder decodeObjectForKey:@「obj2」];
} return self; }
(無效)encodeWithCoder:(NSCoder *)編碼器{ [編碼器encodeObject:self.toolResult forKey:@ 「OBJ1」]; [編碼器encodeObject:self.toolNotes forKey:@「obj2」];
}
您的數據保存到NsuserDefault當你獲取數據從NsUserDefault那麼你可以使用類似 [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults的standardUserDefaults] objectForKey:@ 「的NSMutableArray」]];
重複此:http://stackoverflow.com/questions/3389593/saving-uitabbarcontroller-view-controllers-to-nsuserdefaults-doesnt-work 請不要問在兩個不同的問題相同的問題。 – jer 2010-08-02 16:26:48