我从plist文件中读取时遇到问题 我将Settings.plist文件保存在我的项目中(在Resources文件夹中进出) 并没有google和stackOverFlow方法提供的工作。我不知道我错过了什么。 代码是:
NSString *pListPath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
NSMutableDictionary *settings = [[[NSMutableDictionary alloc] initWithContentsOfFile:pListPath] retain];
BOOL touch = [[settings objectForKey:@"Touch"] boolValue];
NSLog(@"%@",touch ? @"TOUCH IS YES" : @"TOUCH IS NO");
我尝试了很多不同的方法来获取* plistPath,NSBundle,只是一个带有文件名的字符串。还试过NSMutabelDictionary,规范NSDictionary,NSArray,NSMutableArray
似乎没什么用。 尝试将plist第一行设置为Root词典,仍然没有运气..
任何帮助都会被贬低.. Settings.plist具有单个值Touch,其键为YES 非常感谢!
编辑: 这是plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Root</key>
<dict>
<key>Touch</key>
<true/>
</dict>
</dict>
</plist>
答案 0 :(得分:3)
您的plist包含一个包含一个键“Root
”的顶级词典。该键的值是另一个带有一个键的字典“Touch
”。
试试这个:
BOOL touch = [[[settings objectForKey:@"Root"] objectForKey:@"Touch"] boolValue];
或者这个(稍慢):
BOOL touch = [[settings valueForKeyPath:@"Root.Touch"] boolValue];