ios - 尝试设置非属性列表对象

标签 ios objective-c

<分区>

NSMutableArray *mutableArray = [NSMutableArray array];
Prostate *prostate = [Prostate new];
prostate.prostateCheckTimeString = self.prostateCheckTime.text;
prostate.prostateCubeString =self.prostateCube.text;
prostate.prostateAntigemString =self.prostateAntigem.text;
prostate.peeSpeedMaximumString =self.peeSpeedMaximum.text;
prostate.peeRemenderString =self.peeRemender.text;
[mutableArray addObject:prostate];
NSArray *tempArray = [[NSArray alloc]initWithArray:self.mutableArray];


[Global saveArrayToUserDefault:prostateArray saveValue:tempArray];
NSArray *array = [Global getArrayFromUserDefault:prostateArray];

//下面是我的全局对象

**+(void)saveArrayToUserDefault:(NSString *)userDefaultKey saveValue:(NSArray *)value**
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:value forKey:prostateArray];
[userDefaults synchronize];
}

**+(NSArray *)getArrayFromUserDefault:(NSString *)userDefaultKey**
{
NSArray *temp;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
temp = [userDefaults objectForKey:userDefaultKey];
return temp;
}

------------------------------------描述-------- ------------------------------

我搜索了一段时间,我知道 NSUserDefault 只能存储 NSArray ,我试图将 NSMutableArray 转换为 NSArray ,但仍然出错

------------------------------------错误-------- --------------------------------------

格式无效的属性列表:200(属性列表不能包含“CFType”类型的对象)尝试设置非属性列表对象( ""

最佳答案

实现<NSCoding>您要保存的实体类中的协议(protocol)

-(void)writeArrayWithCustomObjToUserDefaults:(NSString *)keyName withArray:(NSMutableArray *)myArray {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myArray];
    [defaults setObject:data forKey:keyName];
    [defaults synchronize]; }

-(NSArray *)readArrayWithCustomObjFromUserDefaults:(NSString*)keyName {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSData *data = [defaults objectForKey:keyName];
    NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];
    [defaults synchronize];
    return myArray;  }

关于ios - 尝试设置非属性列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27053932/

相关文章:

ios - removeAllObjects 崩溃应用程序

objective-c - 如何取消一个UIWebView?

objective-c - 将 AudioKit 与 Objective-C 结合使用

ios - 日期格式 - 仅显示日期

ios - AFNetworking SSL 固定无法正常工作

ios - 移动 CSS/Javascript iPad 和 iPad mini 兼容性

ios - 用于在页面上显示的 UIPageViewControlerDataSource 和 UiWebView

ios - 从录制的声音中消除已知音频,通过反卷积估计背景声级

ios - 嵌入时忽略 SwiftUI 堆叠属性动画

iphone - 如何在 iPhone 上显示音频表