IOS 如何持久化自定义对象(使用NSUserDefaults)
2015-03-08 15:38
441 查看
如果持久话自定义对象那么这个对象一定要遵循 NSCoding协议并实现编解码;然后再将编解码后的数据 NSKeyedArchiver 到NSData中
读取和保存自定义对象方式如下:
creatGroupInviterDictionary 是存储 NSKeyAndValue 对象的键值对
转自:http://lu-ping-yin.blog.163.com/blog/static/416199920147113210728/
@interface NSKeyAndValue : NSObject<NSCoding>// 键值对象 @property (nonatomic, retain) NSString* m_strKey; @property (nonatomic, retain) NSString* m_strValue; @property (nonatomic, retain) NSString* m_strID; @end @implementation NSKeyAndValue @synthesize m_strKey,m_strValue, m_strID; - (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.m_strKey forKey:@"m_strKey"]; [aCoder encodeObject:self.m_strValue forKey:@"m_strValue"]; [aCoder encodeObject:self.m_strID forKey:@"m_strID"]; } - (id)initWithCoder:(NSCoder *)aDecoder{ self = [super init]; if (self) { self.m_strKey = [aDecoder decodeObjectForKey:@"m_strKey"]; self.m_strValue = [aDecoder decodeObjectForKey:@"m_strValue"]; self.m_strID = [aDecoder decodeObjectForKey:@"m_strID"]; } return self; }
读取和保存自定义对象方式如下:
- (void)readMsgDataToMemory { NSString *key = @"mydata"; NSData *prevSavedData = [[NSUserDefaults standardUserDefaults] objectForKey:key]; NSMutableDictionary *decodedSingleObj = (NSMutableDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:prevSavedData]; [creatGroupInviterDictionary setDictionary:decodedSingleObj]; } - (void)constantStoreOfflineSystemData { if ([creatGroupInviterDictionary.allKeys count] > 0) { NSString *key = @"mydata"; NSData *encodedSingleObj = [NSKeyedArchiver archivedDataWithRootObject:creatGroupInviterDictionary]; [[NSUserDefaults standardUserDefaults] setObject:encodedSingleObj forKey:key]; [[NSUserDefaults standardUserDefaults] synchronize]; } }
creatGroupInviterDictionary 是存储 NSKeyAndValue 对象的键值对
转自:http://lu-ping-yin.blog.163.com/blog/static/416199920147113210728/
相关文章推荐
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- 如何在iOS应用中使用自定义字体
- 如何设计和使用自定义的权限对象(自定义权限检查函数)
- (转)设计时使用自定义属性编辑器持久化对象
- iPhone/iOS中保存自定义对象(Custom Object/Custom Class)的数组(NSMutableArray/NSArray)到NSUserDefaults
- [翻译]如何使用LINQ方法来比较自定义类型的对象
- iOS NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
- iOS 如何使用自定义字体
- ios-day09-02(QQ好友列表。自定义UITableViewHeaderFooterView、如何控制UITableView每一组的展开和闭合、代理的使用)
- iOS 使用NSUserdefault 保存自定义的 对象
- 如何设计和使用自定义的权限对象(自定义权限检查函数)
- Swift技术之如何在iOS 8下使用Swift设计一个自定义的输入法 (主要是NSLayoutConstraint 的使用)
- ios 使用NSUserDefaults保存自定义对象
- 如何在QTP中使用IntelliSense(智能敏感)访问自定义的VBS函数和对象?
- 如何设计和使用自定义的权限对象(自定义权限检查函数)
- 如何 iOS 编程中使用自定义 TableViewCell
- iOS 演示 Modal Segue 的使用,包括参数如何从呈现者传递到 ModalView 以及数据如何从 ModalView 传回呈现者(利用委托对象)