程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> objective C中數據持久化方式1

objective C中數據持久化方式1

編輯:關於C
第一、數據持久化的方式:   NSKeyedArchiver--對象歸檔   屬性列表化(NSArray、NSDictionary、NSUserDefault)   SQlite數據庫、CoreData數據庫   其中第一、二種方式針對數據量小的數據,第三種方式針對大數據,歸檔的文件是加密的,屬性列表明文的。   歸檔的形式;   對foundation庫中對象進行歸檔   自定義對象的歸檔(需要實現歸檔協議:NSCoding)   第二 最簡單歸檔和解歸檔的實現代碼:  
@autoreleasepool {  
    NSString *homeDictory=NSHomeDirectory();  
    NSArray *array=[NSArray arrayWithObjects:@"one",@"two",@"three",nil];  
    NSString *homePath=[homeDictory stringByAppendingPathComponent:@"Desktop/test.archive"];  
    if(![NSKeyedArchiver archiveRootObject:array toFile:homePath])  
    {  
        NSLog(@"歸檔失敗");  
    }else  
    {  
        NSArray *data=[NSKeyedUnarchiver unarchiveObjectWithFile:homePath];  
        NSLog(@"%@",data);  
      
    }  
      
    NSLog(@"Hello, World!");  
      
}  

 

  第四、復雜的內容歸檔 使用NSData實例作為歸檔的存儲數據,添加歸檔的內容(設置key和value),完成歸檔,將歸檔內容存入磁盤   解歸檔步驟:從磁盤讀取文件,生成NSData實例,根據data實例創建或初始化歸檔實例,解歸檔,根據key訪問value的值  
NSString *homeDictory=NSHomeDirectory();  
NSString *homePath=[homeDictory stringByAppendingPathComponent:@"Desktop/usertest.archive"];  
  
NSMutableData *data=[NSMutableData data];  
NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];  
  
NSArray *nameArray=[NSArray arrayWithObjects:@"andy",@"yang", nil];  
[archiver encodeInt:100 forKey:@"age"];  
[archiver encodeObject:nameArray forKey:@"names"];  
[archiver finishEncoding];  
[archiver release];  
  
if ([data writeToFile:homePath atomically:YES])  
{  
  
    NSData *data2=[NSData dataWithContentsOfFile:homePath];  
    NSKeyedUnarchiver *unarchiver=[[NSKeyedUnarchiver alloc] initForReadingWithData:data2];  
    int age=[unarchiver decodeIntForKey:@"age"];  
    NSArray *array2=[unarchiver decodeObjectForKey:@"names"];  
    NSLog(@"%d",age);  
    NSLog(@"%@",array2);  
    [unarchiver release];  
} else  
{  
      
    NSLog(@"write to file wrong");  
}  
          
NSLog(@"Hello, World!");  

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved