iOS基礎--數據本地化-歸解檔-整理總結(2)

雁過也,正傷心!卻是舊時相識!<可達鴨>

iOS數據持久化方法:

  1. 屬性列表 (plist文件), 用 NSUserDefault
  1. 歸檔 (NSKeyedArchiver) (本質上還是WriteToFile 歸解檔是一種編碼方式)
  2. 數據庫 (SQlite, CoreData, FMDB(第三方));
  • 歸檔: 將復雜對象轉化成 NSData 類型對象數據 (復雜--> 歸檔 --> NSData --> writeToFile)
    注意: 歸檔是將對象轉化為數據字節,以文件的形式存在磁盤上.
  • 反歸檔(解檔): 讀取文件將 NSData 類型數據轉化為復雜對象 (讀取數據 --> NSData -->反歸檔 -- 復雜對象)

<big>歸檔的方式:</big>

1: 對Foundation框架中的對象進行歸檔
2: 對自定義的對象進行歸檔
3: 對自定義的內容進行歸檔

  • 注意: 歸檔生成的文檔是加密的不可解的

Foundation框架中對象:
歸檔:

// 1: 創建路徑
NSString *DocumentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, 4) objectAtIndex:0];
NSString *filrPath = [DocumentsPath stringByAppendingString:@"/file.txt"];
// 2: 歸檔
NSArray *arr = @[@"iOS",@"UI",@"OC",@"C"];
BOOL result = [NSKeyedArchiver archiveRootObject:arr toFile:filrPath];
if (result)
{
NSLog(@"歸檔成功****%@",filrPath);
}
// 3: 不需要結束歸檔```

// 反歸檔:

NSArray newArr = [NSKeyedUnarchiver unarchiveObjectWithFile:filrPath];
NSLog(@"newArr
**%@",newArr);```


自定義內容:

// 歸檔:

// 1: 獲取路徑
NSString *rootPath = NSHomeDirectory();
rootPath = [rootPath stringByAppendingString:@"/customFile.txt"];
// 2: 使用Data對象存放歸檔數據
NSMutableData *oldData = [NSMutableData data];
// 3: 創建歸檔工具
NSKeyedArchiver *aa = [[NSKeyedArchiver alloc] initForWritingWithMutableData:oldData];
// 4: 對自定義內容歸檔
[aa encodeObject:@"小皇帝詹姆斯" forKey:@"name"];
[aa encodeObject:@"閃電俠
韋德" forKey:@"wife"];
[aa encodeObject:@[@"保羅",@"安東尼"] forKey:@"team"];
// 5: 完成歸檔
[aa finishEncoding];
// 6: 寫入
if ([oldData writeToFile:rootPath atomically:1])
{
NSLog(@"成功******%@",rootPath);
}

//反歸檔
>```code
    // 1: 讀取文件 并轉化成NSData類型
    NSData *dataNew = [NSData dataWithContentsOfFile:rootPath];
    // 2: 根據dataNew創建反歸檔對象
    NSKeyedUnarchiver *bb = [[NSKeyedUnarchiver alloc] initForReadingWithData:dataNew];
    // 3: 反歸檔
    NSString *str1 = [bb decodeObjectForKey:@"name"];
    NSString *str2 = [bb decodeObjectForKey:@"wife"];
    NSArray *str3 = [bb decodeObjectForKey:@"team"];
    NSLog(@"str1***%@***str*%@**str3*%@",str1,str2,str3);
    // 4:不用寫結束歸檔
自定義對象歸解檔
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容