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

ios – 尝试设置非属性列表对象,第1张

概述参见英文答案 > Attempt to set a non-property-list object as an NSUserDefaults                                    8个 NSMutableArray *mutableArray = [NSMutableArray array];Prostate *prostate = [Prostate new] 参见英文答案 > Attempt to set a non-property-list object as an NSUserDefaults                                    8个

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>您要保存的实体类中的协议

-(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 – 尝试设置非属性列表对象全部内容,希望文章能够帮你解决ios – 尝试设置非属性列表对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1060825.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存