读入.plist

时间:2012-10-28 20:11:23

标签: iphone plist

我想在我的.plist中读取,但我的NSLog等于“(null)”。 这是我的代码:

NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"data.plist"];

NSLog(@"%@", [plistDict objectForKey:@"id"]);

这是我的.plist:http://cl.ly/image/2e3P3Q1z2Z1T

1 个答案:

答案 0 :(得分:2)

你的道路是错的。如果您的plist在您的应用资源中,那么您必须使用NSBundle来获取它的绝对路径。

NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
NSMutableDictionary *dict = [[NSDictionary dictionaryWithContentsOfFile:path] 
                              mutableCopy];

如果它位于您应用的文档文件夹中,您可以执行以下操作:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSString *path = [basePath stringByAppendingPathComponent:@"data.plist"];
NSMutableDictionary *dict = [[NSDictionary dictionaryWithContentsOfFile:path] mutableCopy];

请注意,从plist加载的字典或数组始终是不可变的。你必须创建一个可变副本。