oc基础知识5:归档

原创 2013年12月02日 17:22:31

    1、XML属性列表

    对于NSString、NSArray 、NSDictionary、 NSNumber、 NSDate、 NSData 类以及他们的变体可以使用在这些类中的方法将属性列表写入文件中,根据字典创建属性列表是,字典中的间必须全都是NSStriing对象。数组中的元素或字典中的 值可以是其它类型的。(writrToFile:atomically:方法中第一个冒号后面是要读入的文件名或文件路径,而atoically后面跟的参数的值是BOOL类型的,用于决定是否先将文件内容保存在临时文件中,当文件保存成功后,再将临时文件和原始文件交换,防止原始文件被破坏)

     要将文件中的属性列表读入程序时,如果要读回的是字典,用dictionaryWithContentsOfFile:方法,要读回数组,用arrayWithContentsOfFile:方法;要读回数据,用dataWithContentsOfFile:方法;要读回字符串,用stringWithContentsOfFile:方法;但是,这些函数有一个缺点:他们不会返回任何错误信息,如果不能加载文件,只能从方法中得到nil只能,不能确定出现了哪种错误。

 

例子:

 

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[])

{

    @autoreleasepool {
       
       //定义并初始化数组
         
        NSArray *array;
       
        array=[NSArray arrayWithObjects:@"one",@"two",@"three", nil];
        
       //将数组读入文件xml.txt文件中
       
       [array writeToFile:@"/Users/puke/Desktop/xml.txt" atomically:YES];
       
      //定义一个新数组,将数组从文件中读到新数组中,并输出
      
        NSArray *arr;
       
        arr=[NSArray arrayWithContentsOfFile:@"/Users/puke/Desktop/xml.txt"];
       
        NSLog(@"
%@",arr);

  
         }
   
        return 0;

}

 

 

 

      2、用NSKeyedArchiver归档

      对于以上的基本oc 类对象,以及嵌套的对象,可以用NSKeyedArchiver进行归档;将归档文件读到程序中,用NSKeyedUnarchiver  方法;

      下面是一个例子:

 

       

#import <Foundation/Foundation.h>

#import <Foundation/NSKeyedArchiver.h>

int main(int argc,const char *argv[])

{
    @autoreleasepool{
       
         //创建并初始化一个字典类型的对象
      
           NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:
                         
               @"A class defined so other class can inherit from it",
                          
               @"abstract class",
                          
               @"To implement all the methods defined in a protocol",
                         
               @"adopt",
                         
               @"Storing an object for later use",
                          
               @"archiving",
                         
               nil];
      
       //将字典内容归档到文件dic.txt中
      
         [NSKeyedArchiver archiveRootObject:dic toFile:@"/Users/puke/Desktop/dic.txt"];
       
      //创建一个新字典,将文件中的内容读到新字典中,并输出
      
        NSDictionary *new;
       
        new=[NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/puke/Desktop/dic.txt"];
       
       
         for(NSString *key in new)
      
         {
           
             NSLog(@"%@ :%@",key,[new objectForKey:key]);
     
          }
       
  
       }
   
        return 0;

}

 

 

       3、解码和编码

       对与不属于以上列出的对象的对象,要遵守NSCoding协议,在类定义中添加encodeWithCoder:方法和initWithCoder:方法进行解码和编码,以便告知系统如何归档;

       

      

     

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS基础知识--OC语言

  • 2017-04-12 13:00
  • 403KB
  • 下载

PHP基础知识总结系列文章归档

本帖归档个人整理的一些PHP基础知识总结方面的文章,收藏一些比较实用的,不管正对新手还是高手都还是挺有帮助的

OC基础知识

  • 2015-12-05 10:11
  • 59.27MB
  • 下载

oc基础知识

  • 2014-03-18 14:53
  • 80KB
  • 下载

《精通iOS开发·第六版》数据持久化基础知识之对象归档持久化

数据持久化基础知识之对象归档持久化1、BIDViewController.h文件#import "BIDViewController.h" #import "BIDFourLines.h"static...

OC基础知识点

  • 2014-07-19 19:05
  • 177KB
  • 下载

ios笔记--OC语法基础知识笔记

1、类 在OC中,一般用2个文件来描述一个类: (1) .h:类的声明文件,只是声明一下成员变量和方法,不作具体的实现。使用关键字@interface和@end。 (2) .m:类的实现文件,用于实现...

黑马程序员-③oc基础知识

1.#import的用途:   (1) 跟#include一样,拷贝文件的内容   (2)可以自动防止文件的内容被重复拷贝,不用再想#include那样用条件编译防止重复拷贝    2.#import...

黑马程序员---OC基础知识⑧

一.block知识点 二.Protocol协议
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)