【发布时间】:2010-05-06 23:23:16
【问题描述】:
我在 Root.plist 中有一个设置,其中 Key = 'latestNews' 类型为 PSToggleSwitchSpecifier 和 DefaultValue 作为已检查的布尔值。如果我理解正确,当我将它拉入我的代码时它应该 = YES。我正在尝试检查该值并设置一个 int var 以将其传递给我的 php 脚本。发生的事情是我的布尔值是 nil 或 NO,然后我的 int var = 0。我做错了什么?
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
int latestFlag = ([[prefs objectForKey:@"latestNews"] isEqualToString:@"On"]) ? 1 : 0;
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://www.mysite.com/folder/iphone-test.php?latest=%d", latestFlag];
NSURL *url = [[NSURL alloc] initWithString:urlstr];
//these are auto-released
NSString *ans = [NSString stringWithContentsOfURL:url];
NSArray *listItems = [ans componentsSeparatedByString:@","];
self.listData = listItems;
[urlstr release];
[url release];
更新: 真正的问题是我无法检索任何设置值。我将布尔设置更改为字符串,类似于书籍示例。所以现在我的设置有一个 TrueValue = "On" 和一个 FalseValue = "Off" 和一个 DefaultValue = "On"。我现在正在尝试使用上面的代码检索此设置。鉴于这是 DefaultValue,它应该 =“On”,但是我的 int 最终 = 0,这表明我根本没有读取设置。
【问题讨论】:
-
我仍在调查,但我开始认为这个问题与将我的应用程序连接到 Settings.bundle 有关。书中的 AppSettings 示例应用程序以实用程序应用程序模板开始——而我的应用程序只是一个标准的基于视图的应用程序。所以我正在尝试比较其他一些代码的差异。
标签: iphone boolean nsuserdefaults