`
janedoneway
  • 浏览: 570291 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iPhone数据存储之属性和归档Archive

 
阅读更多

From: http://www.zhujiangroad.com/program/iOS/24620.html

 

 

iPhone数据存储属性和归档Archive是本文要介绍的内容,在iPhone中有四种方式可以永久存储数据分别是属性列表、归档、SQLITE3、coredata  。

  先来解释一下,前两者、后二者操作的时候有些地方是相同的,以属性列表和归档来说都会用writeToFile/URL:path atomically:flag 和initWithContentofFile/URL:path;两都都不能直接操作基本数据类型,不过前者不能操作定义的类,而后者可以通过实现NSCoding协议来达到目的  。另外要说点的就是IPHONE每个应用都会有三个文件夹分别是documents、tmp、library分别称为存储应用的数据临时数据数据库  。我们要保存的数据会在documents中  。由于时间关系抽空再把这个文字写完整些  。

  1. #import "dataprocessAppDelegate.h"  
  2. @implementation dataprocessAppDelegate  
  3. @synthesize window;  
  4. @synthesize dataArray;  
  5. -(NSString*)pathFileForProcess:(NSString *)pathName{  
  6. NSArray *directory=NSSearchPathForDirectoriesInDomains (NSDocumentDirectory,NSUserDomainMask, YES);  
  7. return [[directory objectAtIndex:0] stringByAppendingPathComponent:pathName];  
  8. }  
  9. z  
  10. -(void)writeDataToFile{  
  11. firstData = [[NSString alloc] initWithString:@"im first!"];  
  12. secondData = [[NSString alloc] initWithString:@"im secondData!"];  
  13. thirdData = [[NSString alloc] initWithString:@"im thirdData!"];  
  14. NSLog(@"write:\n first: %@ \nscond: %@ \nthird: %@", firstData, secondData, thirdData);  
  15. NSMutableArray *tmp = [[NSMutableArray alloc] init];  
  16. [tmp addObject:firstData];  
  17. [tmp addObject:secondData];  
  18. [tmp addObject:thirdData];  
  19. self.dataArray = tmp;  
  20. [tmp release];  
  21. [firstData release];[secondData release];[thirdData release];  
  22. BOOL bWrite = [dataArray writeToFile:[self pathFileForProcess:@"myTest.txt"]atomically:YES];  
  23. }//属性读  
  24. -(void)readDataFromFile{  
  25. if([[NSFileManager defaultManager] fileExistsAtPath:[selfpathFileForProcess:@"myTest.txt"]]){  
  26.       NSMutableArray  *tmpRead = [[NSMutableArray alloc] initWithContentsOfFile:[selfpathFileForProcess:@"myTest.txt"]];  
  27.   self.dataArray = tmpRead;  
  28.       [tmpRead release];  
  29.     firstData = [dataArray objectAtIndex:0];  
  30.     secondData = [dataArray objectAtIndex:1];  
  31.     thirdData = [dataArray objectAtIndex:2];  
  32.     NSLog(@"read:\n first: %@ \nscond: %@ \nthird: %@", firstData, secondData, thirdData);  
  33. return;  
  34. }  
  35. NSLog(@"PROCESS FIRLE DOESNT EXITS!");  
  36. }  
  37. #pragma mark -------object-------------  
  38. //归档写  
  39. -(void)processObjectWrite{  
  40. person *pObject= [[person alloc] init];  
  41. pObject.name = [[NSString alloc] initWithString:@"wenQiang"];  
  42. pObject.profession = [[NSString alloc] initWithString:@"project manager"];  
  43. //[pObject setAge:24 andMarry: NO];  
  44. //NSMutableArray *testData = [[NSMutableArray alloc] init];  
  45. NSMutableData *data=[[NSMutableData alloc] init];  
  46. NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];  
  47. [archiver encodeObject:pObject forKey:@"kObject"];  
  48. [archiver finishEncoding];  
  49. Boolean bWrite = [data writeToFile:[self pathFileForProcess:@"object2.txt"]atomically:YES];  
  50. if(bWrite) NSLog(@"ok..."); else NSLog(@"write error!");  
  51. [archiver release];  
  52. //[pObject release];  
  53. }、、归档读  
  54. -(void)processObjectRead{  
  55. NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:[selfpathFileForProcess:@"object2.txt"]];  
  56. NSLog(@"data %@..", data);  
  57. NSKeyedUnarchiver *unchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];  
  58. person *tmp = [unchiver decodeObjectForKey:@"kObject"];  
  59. [unchiver finishDecoding];  
  60. NSLog(@"OBJECT: name: %@ profession: %@\nage: %@\n marry:%@", tmp.name, tmp.profession);  
  61. [unchiver release];  
  62. //[tmp release];  
  63. //实现  
  64. - (void)applicationDidFinishLaunching:(UIApplication *)application {      
  65.  
  66.     // Override point for customization after application launch  
  67. //[self writeDataToFile];  
  68. //[self readDataFromFile];  
  69. [self processObjectWrite];  
  70. [self processObjectRead];  
  71.     [window makeKeyAndVisible];  
  72. }  
  73. - (void)dealloc {  
  74.     [window release];  
  75. [dataArray release];  
  76.     [super dealloc];  
  77. }  
  78. @end  
  79. //以下是自定义的类  
  80. #pragma mark---class person--  
  81. #define       kName              @"keyName"  
  82. #define       kProfession @"keyProfession"  
  83. #define       kAge @"keyAge"  
  84. #define       kMarry @"keyMarry"  
  85. @implementation person  
  86. @synthesize name;  
  87. @synthesize profession;  
  88. #pragma mark----nscoding delegate 2 method--  
  89. - (void)encodeWithCoder:(NSCoder *)aCoder{  
  90. [aCoder encodeObject:name forKey: kName];  
  91. [aCoder encodeObject:profession forKey: kProfession];  
  92. // [aCoder encodeObject:Age forKey: kAge];  
  93. // [aCoder encodeObject:marry forKey:kMarry];  
  94. }  
  95. - (id)initWithCoder:(NSCoder *)aDecoder{  
  96. if(self = [super init]){  
  97. self.name = [aDecoder decodeObjectForKey:kName];  
  98. self.profession = [aDecoder decodeObjectForKey:kProfession];  
  99. //Age = [aDecoder decodeObjectForKey:kAge];  
  100. // marry=[aDecoder decodeObjectForKey:kMarry];  
  101. }  
  102. return self;  
  103. }  
  104. #pragma mark ---------------NSCopying 1 method-------------  
  105. - (id)copyWithZone:(NSZone *)zone{  
  106. person *tmp = [[[self class] allocWithZone:zone] init];  
  107. tmp.name = [self.name copy];  
  108. tmp.profession = [self.profession copy];  
  109. return nil;  
  110. }  
  111. -(void)dealloc{  
  112. [name release];  
  113. [profession release];  
  114. [super dealloc];  
  115. }  
  116. //-(void)setAge:(NSInteger)age andMarry:(Boolean)b{  
  117. // Age = age;  
  118. // marry = b;  
  119. //}  
  120. @end 

  小结:iPhone数据存储之属性和归档Archive的内容介绍完了,希望本文对你有所帮助

分享到:
评论

相关推荐

    iphone属性列表持久化存储

    该工程是在iphone中通过属性列表实现数据持久化存储的程序。

    苹果iphone手机数据恢复软件v4.1中文免费安装版

    苹果iphone手机数据恢复软件(iphone数据恢复)是一个针对iPhone、iPad、iTouch平台的短信、通讯录、通话记录、QQ聊天记录、微信删除的数据恢复软件。iphone数据恢复可恢复:短信、通讯录、通话记录、QQ聊天记录...

    数据恢复工具iPhone Data Recovery 6.5.0

    有效的帮助用户直接从iPhone恢复意外丢失的数据,或者是删除的视频、相片和通讯记录等。恢复的范围非常广,且还可以保存到电视上,非常的方便实用。 Supported Recovered Files from Any iOS Device: iPad • iPad ...

    321数据恢复 iPhone数据恢复 v3.8.rar

    321数据恢复 iPhone数据恢复软件专业版为用户提供了一个安全和强大的数据恢复解决方案,它可以恢复各种类型,例如:硬盘、U盘、光盘、移动硬盘、USB闪存卡、数码相机、iPhone苹果手机等以及其他类型的可移动媒体中丟...

    iPhone 系列数据恢复工具 V1.02 破解版

    恢复丢失的数据和同步错误,如升级的iOS。 多达12种不同的文件格式。 因为它是一个共同的特点,每一个版本,iTunes的备份文件,恢复,如iPhone 5/4S如果你有一个iTunes的备份文件,请使用您所选择的版本。

    iphone数据线

    iphone5数据线

    北亚Iphone苹果手机数据恢复软件 v3.74.zip

    今天小编为大家介绍一款针对苹果手机数据丢失开发的一款手机数据恢复软件——北亚Iphone苹果手机数据恢复软件。北亚Iphone苹果手机数据恢复软件由北京北亚数据恢复中心研发,能够实现iPhone、ipad、iTouch等多种苹果...

    读写数据-数据归档源码

    iphone开发:读写数据,数据归档源码,解压可直接运行。

    iphone数据恢复工具

    iphone数据恢复软件,数据修复汉化版。解决数据丢失问题,内附安装方法汉化补丁注册机

    iphone数据恢复

    恢复iphone数据软件采用先进的算法,如果因为特殊原因扫描不到丢失的文件

    中国iphone用户调查基本数据

    中国iphone用户调查基本数据最新数据

    iphone view之间传送数据

    iphone 从view2到view1之间的数据传送问题iphone 从view2到view1之间的数据传送问题 希望对你们有帮助谢谢

    苹果iphone手机数据恢复软件 v2.1 免费版.zip

    苹果iphone手机数据恢复软件是一款专门针对苹果设备的数据恢复软件。软件不仅能实现iphone手机数据恢复,还能实现包括iPad等设备的数据恢复。软件可恢复短信、通讯录、通话记录、QQ聊天记录等诸多数据。软件界面美观...

    iPhone 数据持久储存的几种方式

    NULL 博文链接:https://374016526.iteye.com/blog/1156908

    iphone数据恢复软件苹果数据恢复软件.rar

    一款专业且效果理想的苹果恢复数据软件,拥有从IOS设备还原、...支持直接从iOS设备还原数据,通过USB数据线连接iPhone/iPad/iPod并安装到Windows系统上,然后选择数据类型并开始扫描接着预览扫描结果最后复删除数据即可

    iPhone数据恢复软件

    iPhone数据恢复软件

    苹果Iphone常见的重启数据分析代码

    苹果Iphone常见的重启数据分析代码 包含苹果机型重启分析代码(i2c总线报错)

    321Soft iPhone数据恢复Mac版 v3.6.8 官方试用版.zip

    321Soft iPhone数据恢复为您提供最快和最简单的方式来找回您的珍贵数据放回iPhone上,iPad和iPod touch。 试用版让你尝试购买前预览文件。它可以让你有选择性地恢复你想要恢复的数据,和您没有在iTunes上备份过的...

    iPhone数据传输软件-DiskAid v6.6.2.zip

    DiskAid(iPhone数据传输软件)是一款iPhone数据传输辅助软件,能够在iPhone通过数据线或Wifi连接到PC端时完成一系列强大的文件传输操作,能够实现音乐与视频在iPhone与PC间任意位置的转换与传输。同时DiskAid还支持...

    FonePawiOSDataBackupandRestore8.9x64一款专业强大的iPhone数据恢复软件.exe

    功能介绍1、一键备份您的iPhone/ipad一旦您的iOS设备连接到PC,FonePaw iOS数据备份和恢复将扫描您的手机数据并允许您一键备份。备份数量没有限制,最新的不会擦除旧的。2、从备份中安全还原在恢复之前可以预览所有...

Global site tag (gtag.js) - Google Analytics