在 NSUserDefault 中保存 NSMutableArray 给出 nil

Posted

技术标签:

【中文标题】在 NSUserDefault 中保存 NSMutableArray 给出 nil【英文标题】:Saving NSMutableArray in NSUserDefault gives nil 【发布时间】:2014-06-18 09:40:21 【问题描述】:

我已经试过了

设置:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:mutArr forKey:@"userInfo"]; [userDefaults 同步];

获取:

NSMutableArray *retrieveArray = [[NSMutableArray alloc] init]; retrieveArray = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"userInfo"] mutableCopy];

谁能告诉我哪里出错了? 谢谢。

【问题讨论】:

您确定将数组 mutArr 保存为不是空数组吗? 是的,我查过了,它是空的。但现在它让我在 [[NSUserDefaults standardUserDefaults] setObject:mutArr forKey:@"Key"]; 我在 NSUserDefaults 中保存数据时询问该数组是否包含数据或空 aaray? 它让我崩溃日志:尝试设置一个非属性列表对象 【参考方案1】:

请尝试以下代码。

套装:

NSMutableArray *arrCategoryListSet = [[NSMutableArray alloc] initWithObjects:object1, object2, nil];   
[[NSUserDefaults standardUserDefaults] setObject:arrCategoryListSet forKey:@"CategoryList"];
[[NSUserDefaults standardUserDefaults] synchronize];

获取:

NSMutableArray *arrCategoryListGet = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"CategoryList"]];

NSMutableArray *arrCategoryListGet = [[NSUserDefaults standardUserDefaults] objectForKey:@"CategoryList"];

【讨论】:

【参考方案2】:

保存数组

[[NSUserDefaults standardUserDefaults] setObject:youArray forKey:@"Key"];

检索数组

 NSArray *retArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"Array"];

【讨论】:

以上是关于在 NSUserDefault 中保存 NSMutableArray 给出 nil的主要内容,如果未能解决你的问题,请参考以下文章

在 NSUserDefault 中保存 NSMutableArray 给出 nil

NSUserDefault 无法在 iOS8 的扩展中保存和加载

如何在 appdelegate 中使用 applicationDidEnterBackground 保存 NSUserDefault

将图像保存在 NSUserDefault 并进入其他 ViewController

在 NSUserDefault 中保存日期会给出不正确的值

NSUserDefault的使用