归档读写数据
来源:互联网 发布:网络知识都有什么 编辑:程序博客网 时间:2024/06/02 15:44
先新建一个person类:
@interface person : NSObject
{
NSString *name;
NSString *profession;
}
@property (nonatomic,copy)NSString *name;
@property (nonatomic,copy)NSString *profession;
@end
//implementation
#import "person.h"
@implementation person
@synthesize profession,name;
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:name forKey: @"kname"];
[aCoder encodeObject:profession forKey: @"kProfession"];
// [aCoder encodeObject:Age forKey: kAge];
// [aCoder encodeObject:marry forKey:kMarry];
}
- (id)initWithCoder:(NSCoder *)aDecoder{
if(self = [super init]){
self.name = [aDecoder decodeObjectForKey:@"kname"];
self.profession = [aDecoder decodeObjectForKey:@"kProfession"];
//Age = [aDecoder decodeObjectForKey:kAge];
// marry=[aDecoder decodeObjectForKey:kMarry];
}
return self;
}
#pragma mark ---------------NSCopying 1 method-------------
- (id)copyWithZone:(NSZone *)zone{
person *tmp = [[[self class] allocWithZone:zone] init];
tmp.name = [self.name copy];
tmp.profession = [self.profession copy];
return nil;
}
- (void)dealloc
{
[name release];
[profession release];
[super dealloc];
}
@end
//------------------------下面是调用方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self processObjectWrite];
[self processObjectRead];
[self.window makeKeyAndVisible];
return YES;
}
-(NSString*)pathFileForProcess:(NSString *)pathName{
NSArray *directory=NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
return [[directory objectAtIndex:0] stringByAppendingPathComponent:pathName];
}
-(void)processObjectWrite{
person *pObject= [[person alloc] init];
pObject.name = [[NSString alloc] initWithString:@"wenQiang"];
pObject.profession = [[NSString alloc] initWithString:@"project manager"];
//[pObject setAge:24 andMarry: NO];
//NSMutableArray *testData = [[NSMutableArray alloc] init];
NSMutableData *data=[[NSMutableData alloc] init];
NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:pObject forKey:@"kObject"];
[archiver finishEncoding];
Boolean bWrite = [data writeToFile:[self pathFileForProcess:@"object2"] atomically:YES];
if(bWrite) NSLog(@"ok..."); else NSLog(@"write error!");
// [archiver release];
//[pObject release];
}
//归档读
-(void)processObjectRead{
NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:[self pathFileForProcess:@"object2"]];
NSLog(@"data %@..", data);
NSKeyedUnarchiver *unchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
person *tmp = [unchiver decodeObjectForKey:@"kObject"];
[unchiver finishDecoding];
NSLog(@"OBJECT: name: %@ profession: %@", tmp.name, tmp.profession);
// [unchiver release];
//[tmp release];
}
- 归档读写数据
- 归档数据的读写方法。。。
- 数据持久化保存(文件读写,归档,sql读写)
- 数据持久化(一)-----归档 读写 文件路径
- 数据持久化(一)-----归档 读写 文件路径
- 文件读写,归档,反归档
- 数据归档
- 沙盒机制与NSFileManager与数据持久化--归档和读写和NSUserDefaults
- 数据归档与备份
- sap数据归档
- sap数据归档
- 数据归档难度加大
- 数据归档的重要性
- 数据归档的发展潜力
- 数据归档的发展方向
- 数据归档管理系统
- sqlserver大数据归档
- 闪回数据归档
- TCP KEEPALIVE详解
- where 1=1
- 短暂的停留
- iptables 版 DNS 匹配模块
- wince下sources\sources.cmn\Makefile.def的相关作用
- 归档读写数据
- 16进制颜色代码对照表
- bayer, yuv, RGB转换方法
- oracle创建表空间
- C++控制台应用程序 无法右键粘贴 解决方法
- Oracle中常用的数据字典
- Android Market 多APK 包支持
- note110729
- HDOJ 1162 Eddy's picture