你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios 歸檔學習筆記

ios 歸檔學習筆記

編輯:IOS開發綜合

歸檔是指用某種格式來保存一個或者多個對象,以便以後還原這些對象的過程。


使用xml屬性列表進行歸檔

如果你是對NSString,NSDictionary,NSArray,NSData,NSNumber對象進行歸檔,可以使用類中實現的writeToFile:atomically:方法將數據寫到文件中。

使用dictionaryWithContentsOfFile 或者arrayWithContentsOfFile,dataWithContentsOfFile,stringWithContentsOfFile方法讀回數據。

使用NSKeyedArchiver歸檔

將各種類型的對象存儲到文件中,不僅僅是字符串、數組和字典,有一種更靈活的方法,就是NSKeyedArchiver類創建帶鍵的檔案來完成。

帶鍵的檔案中,每個歸檔的字段都有一個名稱。歸檔某個對象時,為它提供一個名稱,即鍵。從歸檔中檢索對象時,是根據這個鍵來檢索的。

編碼方法和解碼方法

自定義的類對象不能直接歸檔。因為系統不知道如何進行歸檔。

按照協議,在類中添加encodeWithCoder方法和initWithCoder方法實現歸檔規范。

encodeWithCoder方法告知歸檔程序如何進行歸檔。initWithCoder方法告知如何解編碼。

前面描述的基本oc類,可以使用encodeObject:forKey進行編碼,decodeObject:forKey來解碼,對於基本的C類型使用如下方法

編碼方法 解碼方法 encodeBool:forKey: decodeBool:forKey: encodeInt:forKey: decodeInt:forKey: encodeInt32:forKey: decodeInt32:forKey: encodeInt64:forKey: decodeInt64:forKey: encodeFloat:forKey: decodeFloat:forKey: encodeDouble:forKey: decodeDouble:forKey:

來個例子:

- (void)encodeWithCoder:(NSCoder *)coder
{
    [coder encodeObject:@"tongxue"  forKey:@"name"];
    [coder encodeInt:13 forKey:@"age"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
    NSString * name = [aDecoder decodeObjectForKey:@"name"];
    int age = [aDecoder decodeIntForKey:@"age"];
    return self;
}




  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved