Chapter 10 :  属性列表

 

PS : Objective-C可使用与C绑定的所有工具,例如标准C库函数。

可使用malloc()和free()函数处理动态内存管理问题,或者使用open(), read(), write(), fopen()和fread函数处理文件。

 

-> 属性列表类包括NSArray, NSDictionary, NSString, NSNumber, NSDate和NSData。

 

1. NSDate :用于处理日期和时间的基础类,是一个自动释放对象。示例如下:

1 // 获取当前日期和时间
2 NSDate *date = [NSDate date];
3 NSLog(@"Today is %@", date);
4 
5 // 获取与当前时间相隔一定时差的日期
6 // 间隔时间以秒(s)为单位
7 NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];
8 NSLog(@"Yesterday is %@", yesterday);

  

2. NSData : 用于包装大量字节数据。如下:NSData对象将保存一个普通的C字符串(字节序列),然后输出:

1 const char *string = "Hi there, this is a C String!";
2 NSData     *data = [NSData dataWithBytes:string length:strlen(string)+1];
3 NSLog(@"data is %@", data);

 PS : strlen(string)+1中的"+1"用于包含C字符串所需的尾部的零字节(输出结果末尾的00)。

1 // 可使用%s格式说明输出字符串
2 NSLog(@"%d bytes string is '%s'", [data length], [data bytes]);

 NSData对象是不可改变的,它们被创建后就不能改变。NSMutableData支持在数据内容中添加和删除字节。

 

3. 写入和读取属性列表:

-> 集合属性列表类(NSArray, NSDictionary)具有一个writeToFile:atomically:方法, 用于将属性列表写入文件。

-> NSString和NSData也具有writeToFile:atomically:方法,但是只能写入字符串和数据块。

NSArray *phrase = [NSArray arrayWithObjects:@"I", @"seem", @"to", @"be", @"a", @"verb", nil];
[phrase writeToFile:@"/tmp/verbiage.txt" atomically:YES];

 从文件中读取内容:

NSArray *phrase2 = [NSArray arrayWithContentsOfFile:@"/tmp/verbiage.txt"];
NSLog(@"%@", phrase2);

 PS : writeToFile:atomically:方法中的atomically参数是用于通知是否应该首先将文件保存在临时文件中,当文件成功保存后,再将临时文件和原始文件

交换,这是一种安机制。

 

 

 

posted on 2012-09-28 15:34  BankFish  阅读(466)  评论(0编辑  收藏  举报