使用plist可以将应用程序的一些数据写入到文件系统中,这是一种比CoreData简单的数据管理方式。
Property list支持以下数据类型:
- NSArray
- NSDictionary
- NSString
- NSData
- NSDate
- NSNumber
新建名为stockz的命令行程序工程,创建多个NSMutableDictionary对象存储股票名称和持有该股票的数量,将多只股票的信息存入数组中,最后将数组写入plist文件中。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
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];
[stocks writeToFile:@"/tmp/stocks.plist" atomically:YES];
}
return 0;
}
执行程序,将在/tmp目录下生成stocks.plist,其内如如下:
接下来,我们读取plist文件中的内容:
[stocks writeToFile:@"/tmp/stocks.plist" atomically:YES];
NSArray *stockList = [NSArray arrayWithContentsOfFile:@"/tmp/stocks.plist"];
for (NSDictionary *d in stockList)
{
NSLog(@"I have %@ shares of %@", [d objectForKey:@"shares"], [d objectForKey:@"symbol"]);
}
程序执行结果如下:
I have 200 shares of AAPL
I have 160 shares of GOOG