IOS学习笔记---文件加载和保存

原创 2013年12月04日 20:10:25

以下是将属性列表文件plist数据内容以二进制形式写入文件的代码:

void writeCapitols (void)

{

    NSMutableArray *capitols = [NSMutableArrayarrayWithCapacity:10];

    NSMutableDictionary *capitol = [NSMutableDictionarydictionaryWithObject:@"Canada"forKey:@"country"];

    [capitol setObject:@"Ottawa"forKey:@"capitol"];

    [capitols addObject:capitol];

    capitol = [NSMutableDictionarydictionaryWithObject:@"Norway"forKey:@"country"];

    [capitol setObject:@"Oslo"forKey:@"capitol"];

    [capitols addObject:capitol];

    

    NSString *error =nil;

    NSData *encodedArray = [NSPropertyListSerializationdataFromPropertyList:capitols 

                                                                     format:NSPropertyListBinaryFormat_v1_0 

                                                           errorDescription:&error];

    [encodedArray writeToFile:@"/tmp/capitols.txt"atomically:YES];

}

如你所见,我们将数组数据转换成了NSData类型并写入了文件中。

将数据读取回内存要多执行一步,即指定文件的类型。我们创建了一个指针,如果文件格式与指定的类型不同,可以换用原格式类型的指针,也可以将读取的内容转换成新的格式。

static void modifyCapitols(void)

{

    NSData *data = [NSDatadataWithContentsOfFile:@"/tmp/capitols.txt"];

    NSPropertyListFormat propertyListFormat =NSPropertyListXMLFormat_v1_0;

    NSString *error =nil;

    NSMutableArray *capitols = [NSPropertyListSerializationpropertyListFromData:data

                                                               mutabilityOption:NSPropertyListMutableContainersAndLeaves

                                                                         format:&propertyListFormat

                                                               errorDescription:&error];

    NSLog(@"capitols %@", capitols);

}

在main函数中,我们调用writeCapitols();modifyCapitols();的输出结果如下:

capitols (

        {

        capitol = Ottawa;

        country = Canada;

    },

        {

        capitol = Oslo;

        country = Norway;

    }

)


可以使用[NSDate date]来获取当前的日期和时间,它会返回一个能自动释放的对象。

    NSDate *date = [NSDatedate];

   NSLog (@"today is %@", date);

将输出的结果为:today is 2013-12-4 19:58:06 -0400。


有些属性列表文件,特别是首选项文件,是以压缩的二进制格式存储的。通过使用plutil命令:plutil - convert xml1文件名.plist,可以将这些文件转换成人可以理解的字面形式。

Cocoa具备一种将对象转换成某种格式并保存到磁盘中的机制。对象可以将它们的实例变量和其他数据编码为数据块,然后保存到磁盘中。这些数据块以后还可以读回内存中,并且还能基于保存的数据创建新对象。这个过程被称为编码与解码(encoding and decoding),也可以叫做序列化与反序列化(serialization and deserialization)

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

相关文章推荐

终极ios学习笔记1.0.2-ios无法加载项目内资源文件

做软件,游戏啥得,免不了很多资源,图片啊,音乐啊,自定义文件啊,很多!      是不是有时候会遇到怪问题,资源文件明明在项目下面,路径也是对得,也转化为相对路径了,看了又看就是不知道为什么,加载得...

cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第四步---编辑器(3)--坐标保存&加载文件操作

/* 说明: **1.本次游戏实例是《cocos2d-x游戏开发之旅》上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写,第一别完全照搬代码;第二可以说...

Object-c学习笔记十六-----文件加载与保存

Cocoa中有一类名为属性列表的对象是plist。 属性列表类包含NSArray ,NSDictionary,NSString,NSNumber ,NSDate和NSData。 看看NSDate和...

iOS 学习笔记之懒加载

本文转载自:iOS 开发之旅之懒加载 感谢作者 在iOS开发摸爬打滚了许久,谈谈自己学习以及开发iOS的一些经验,文章比较随性,算是记录自己的成长吧!希望有些我走的弯路以及曾经让我捉耳挠腮的问...

iOS开发学习笔记之swift3.0几种加载网络图片的方法

swift3.0加载网络图片

iOS学习笔记13— UITableView封装之下拉-上提-图片异步加载

做过移动端开发的人都知道,列表控件是最常用的控件之一。iOS里的列表控件是UITableView,其实Apple的开发人员对于UITableView的设计已经够好的了(简单易用,扩展性非常强等等)。 ...

Android JNI学习笔记——so文件动态加载

Android中对于so的加载提供了两个方法。System.loadLibrary("libName"); System.load("pathName");/** * See {@link Runt...

Linux学习笔记(6)----Bash shell 登陆后配置文件的加载

在Linux中,有许多命令,其中包括 alias命令别名 和 bash的内置命令 那么我们敲入一个命令之后,系统是根据什么顺序优先执行的呢? 鸟哥书中这样表示: 1.以相对/绝对路径执行命令,例...

spring学习笔记(3)——配置文件applicationContext.xml的加载

转载: http://blog.csdn.net/mezheng/article/details/73229811、把applicationContext.xml直接放在WEB-INF下,sprin...

Servlet学习笔记(四)—— web.xml配置文件简介及加载过程

引言:       对于 一个J2EE
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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