本文介绍了如何保存在Objective-C的一个结构NSUserDefaults的到?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何保存自定义结构
到 NSUserDefaults的
?
How do I save a custom struct
to NSUserDefaults
?
struct Paging {
NSInteger currentPage;
NSInteger totalResults;
NSInteger resultsPerPage;
};
typedef struct Paging Paging;
NSUserDefaults *userInfo = [NSUserDefaults standardUserDefaults];
[userInfo setStruct:paging forKey:@"paging"];
[userInfo synchronize];
以上code产生一个运行时警告:结果 *** - [NSUserDefaults的的setObject:forKey:]:尝试插入非财产价值...
推荐答案
的一种方法是把它变成NSData的
One way is to turn it into NSData
NSData* d = [NSData dataWithBytes: paging length: sizeof(paging)];
在这种情况下,你的结构是pretty简单,所以你可能要一个类别添加到NSUserDefaults的保存和恢复它。我想实现一个通过保存一个NSDictionary四NSNumbers。多做一些工作,但它意味着你的plist会力所能及的可读性。
In this case your struct is pretty simple, so you might want to add a category to NSUserDefaults to save and restore it. I'd implement that by saving an NSDictionary with four NSNumbers. A bit more work, but it means your plist will be humanly readable.
这篇关于如何保存在Objective-C的一个结构NSUserDefaults的到?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!