用归档保存的对象,其子对象…
来源:互联网 发布:b站好看的视频 知乎 编辑:程序博客网 时间:2024/05/22 02:14
收藏一下,总结的不错。
原文地址:用归档保存的对象,其子对象必须也支持归档包括自定义的对象。及实现initWithCoder和encodeWithCoder方作者:Bill
对于保存对象数据到NSMutableArray 里 先要进行序列化 代码如下:
#import<Foundation/Foundation.h>
@interface ReviewUserInfo :NSObject<NSCoding> {
NSString *userName;
NSString *userReview;
NSString *userTime;
float userStarNum;
}
@property(nonatomic,copy)NSString *userName;
@property(nonatomic,copy)NSString *userReview;
@property(nonatomic,copy)NSString *userTime;
@property(nonatomic,assign)float userStarNum;
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
@end
#import "ReviewUserInfo.h"
@implementation ReviewUserInfo
@synthesize userName;
@synthesize userTime;
@synthesize userReview;
@synthesize userStarNum;
- (void) encodeWithCoder: (NSCoder *)coder
{
[coder encodeObject:self.userNameforKey:@"userName"];
[coder encodeObject:self.userReviewforKey:@"userReview"];
[coder encodeObject:self.userTimeforKey:@"userTime"];
[coder encodeFloat:self.userStarNumforKey:@"userStarNum"];
}
- (id) initWithCoder: (NSCoder *) coder
{
userName = [[coderdecodeObjectForKey:@"userName"]copy];
userReview = [[coderdecodeObjectForKey:@"userReview"]copy];
userTime = [[coderdecodeObjectForKey:@"userTime"]copy];
userStarNum = [coderdecodeFloatForKey:@"userStarNum"];
return self;
}
@end
------------------------
NSMutableArray*userNameArray = [[NSMutableArray alloc] init];
保存
ReviewUserInfo *userInfo=[[ReviewUserInfo alloc] init];
userInfo.userName=@"评论成功" ;
userInfo.userReview = @"评论成功" ;
userInfo.userTime = @"评论成功" ;
userInfo.userStarNum = 123;
[userNameArray addObject:userInfo];
[[NSUserDefaults standardUserDefaults]setObject:[NSKeyedArchiver archivedDataWithRootObject:userNameArray]forKey:@"UserReviewName"];
读取
NSData*dataRepresentingSavedArray = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"UserReviewName"];
if(dataRepresentingSavedArray != nil)
{
NSArray*oldSavedArray = [NSKeyedUnarchiverunarchiveObjectWithData:dataRepresentingSavedArray];
[userNameArray setArray:oldSavedArray];
}
用归档保存的对象,其子对象必须也支持归档包括自定义的对象。及实现initWithCoder和encodeWithCoder方法
#import<Foundation/Foundation.h>
@interface ReviewUserInfo :NSObject<NSCoding> {
}
@property(nonatomic,copy)NSString
@property(nonatomic,copy)NSString
@property(nonatomic,copy)NSString
@property(nonatomic,assign)float
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
@end
#import "ReviewUserInfo.h"
@implementation ReviewUserInfo
@synthesize userName;
@synthesize userTime;
@synthesize userReview;
@synthesize userStarNum;
- (void) encodeWithCoder: (NSCoder *)coder
{
}
- (id) initWithCoder: (NSCoder *) coder
{
}
@end
------------------------
NSMutableArray*userNameArray = [[NSMutableArray alloc] init];
保存
读取
用归档保存的对象,其子对象必须也支持归档包括自定义的对象。及实现initWithCoder和encodeWithCoder方法
0 0
- 用归档保存的对象,其子对象…
- iOS 归档 保存对象到本地
- 利用NSKeyedUnarchiver对象归档方式保存数据
- UITableViewCell高亮时,其子视图中有高亮的对象也高亮了
- 对象归档
- 对象归档
- 对象归档
- 对象归档
- 对象的归档/解挡
- iframe对象的子对象
- hibernate第一个例子,保存一个对象
- SAP归档:如何选择最全的归档对象
- 【IPHONE开发-OBJECTC入门学习】对象的归档和解归档
- 用ViewState保存对象!
- Objective-c中对象的归档
- Object-C中自定义对象的归档
- objective-C 自定义对象归档的实现
- iOS 数据的本地存储-对象归档
- memcpy实现
- Linux 下zip包的压缩与解压
- Linux vi命令详解
- linux 下用shell 写入多行文本
- deep copy and shadow copy
- 用归档保存的对象,其子对象…
- 兼容ios5和ios6的内存不足时警告的…
- Objective-C类的图表转化工具ObjCV…
- dSYM atos crash log 定位到…
- 获取ios设备电量
- 提交iPhone app程序遇到newss…
- iSecret 1.3 正式上线,…
- Android开发环境搭建《转》
- Android:Layout_weight的深刻理解