我想在我的.plist中读取,但我的NSLog等于“(null)”。 这是我的代码:
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"data.plist"];
NSLog(@"%@", [plistDict objectForKey:@"id"]);
这是我的.plist:http://cl.ly/image/2e3P3Q1z2Z1T
答案 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加载的字典或数组始终是不可变的。你必须创建一个可变副本。