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