objective-c - 从 plist 读取 bool 值时出现问题

标签 objective-c plist

以下代码每次都会记录“NO”。非常感谢您的帮助!

代码:

 NSString *filePath = @"settings.plist";
 NSDictionary* plistDictionary = [[NSDictionary alloc] initWithContentsOfFile:filePath];
 if ([[plistDictionary objectForKey:@"hideToolBarInDetailedView"] boolValue] == YES) {
     detailedView.hidesBottomBarWhenPushed = YES;
     NSLog(@"YES");
 } else {
     detailedView.hidesBottomBarWhenPushed = NO;
     NSLog(@"NO");
 }
 [plistDictionary release];

设置.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>hideToolBarInDetailedView</key>
 <true/>
</dict>
</plist>

最佳答案

我怀疑 plist 文件不在当前工作目录中,并且 initWithContentsOfFile: 返回的 NSDictionary 为空或为零。您可以通过记录 plistDictionary 来验证这一点:

NSLog(@"%@", plistDictionary);

一种解决方案是指定 plist 文件的完整路径。或者,如果存储在 plist 文件中的值是首选项,您可以使用 NSUserDefaults

关于objective-c - 从 plist 读取 bool 值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236363/

相关文章:

ios - 无效的 CfStringRef plist(字典数组)iOS

ios - 如何在 ios 中使用地址显示谷歌地图?

ios - didFinishNavigation 没有被调用

objective-c - Objective-C 字典是有序容器吗?

ios - 传输高分和数据

iphone - 我在哪里可以免费在线存储我的 plist,我的应用程序可以下载它?

iphone - 向 iPhone 首选项/设置包添加按钮?

objective-c - 哪些方法会引发 NSInvalidArgumentException?

objective-c - 点 (".") 运算符和箭头 ("->") 运算符在 C 与 Objective-C 中的使用

objective-c - 从 plist 读取数组时是否保证 NSArray/NSMutableArray 顺序?