property list 文件可以由以下对象组成:
- NSArray
- NSDictionary
- NSString
- NSDate
- NSData
- NSNumber (整数、浮点数或布尔值)
读取或写入 property list 文件
示例:
// 创建一个包含多个 NSDictionary 对象的 NSArray 对象
NSMutableArray *stocks = [[NSMutableArray alloc] init];
NSMutableDictionary *stock;
stock = [NSMutableDictionary dictionary];
[stock setObject:@"AAPL" forKey:@"symbol"];
[stock setObject:[NSNumber numberWithInt:200] forKey:@"shares"];
[stocks addObject:stock];
stock = [NSMutableDictionary dictionary];
[stock setObject:@"GOOG" forKey:@"symbol"];
[stock setObject:[NSNumber numberWithInt:160] forKey:@"shares"];
[stocks addObject:stock];
// 写入 property list 文件
[stocks writeToFile:@"/tmp/stocks.plist" atomically:YES];
// 读取之前生成的 property list 文件
NSArray *stockList = [NSArray arrayWithContentsOfFile:@"/tmp/stocks.plist"];
for (NSDictionary *d in stockList) {
NSLog(@"I have %@ shares of %@",
[d objectForKey:@"shares"],[d objectForKey:@"symbol"]);
}
使用 Xcode 内置的专用编辑器查看:
在项目中使用 property list 文件
其实我们在项目中看到的 info.plist 配置文件就是一个 property list 文件。其次,还可以使用 property list 文件格式化一些数据源。
例如:要在首页设置 4 个 Button,每个 Button 都有标题、图片、索引标志。直接用代码的方式将它们分散设置在代码中当然是可以的。但是如果使用 property list 文件,我们可以把这些数据抽象提取出来格式化保存,一来代码中不同的属性被抽象提取,提高了复用性。二来,如果以后 Button 按钮标题需要修改,直接去 property list 文件中修改就可以了。
示例:
- 创建 property list 文件:
- 代码中读取 property list 文件:
- (NSArray *)rootArray {
if (!_rootArray) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"navigationButton" ofType:@"plist"];
_rootArray = [NSArray arrayWithContentsOfFile:path];
}
return _rootArray;
}
// 读/写 property list 文件:
NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
mutableDict[@"key"] = @"value";
[mutableDict writeToFile:@"/some/path/file" atomically:YES];
NSMutableDictionary *anotherDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/some/path/file"];
参考
- IOS 编程教程(七):用属性列表 (Property List) 来完善你的程序