2010-09-16 77 views
2

Settings Bundle应该是一个非常简单的事情,但由于某种原因,我没有得到它的工作。NSUserDefaults - 为所有值获得空值

在我的设置包的Root.plist中,我使用的是PSToggleSwitchSpecifierPSTextFieldSpecifier。它们都有Type,Title,Key和DefaultValue。在iPod Touch的设置(和模拟器)中查看时,它会正确显示。但我无法检索值。他们只是回来NULL

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
self.websiteURL = [defaults stringForKey:@"myBaseURL"]; 

我得到它显示的任何值是,如果我会去到设置和更改值默认值以外的东西的唯一途径。然后,当我回到应用程序,它会正常工作。我如何设置它,因此它不需要打开设置?

回答

4

尝试this

为用户默认返回nil直到用户设置它是默认行为,我想。您需要登录[defaults registerDefaults:];才能显示“默认”值。

+0

这对我来说似乎非常愚蠢,但唉,这是苹果设置的方式。感谢您指点我正确的方向。 http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/UserDefaults/Tasks/UsingDefaults.html%23//apple_ref/doc/uid/20000719-BAJFBAAH – RyanJM 2010-09-16 19:04:04

0

您可以添加默认值的关键是你的plist需要的键值并将其设置为任何你喜欢的(只要它符合你的键指定的类型)

+0

这是奇怪的事情,我确实在两者上都有一个DefaultValue。 – RyanJM 2010-09-16 18:24:11

+0

哦,我很抱歉,我必须在这里回答这部分问题。请参阅@stephens回答:) – 2010-09-16 18:27:25

1

如果有人正在寻找一个解决方案来注册默认的用户设置,你可以检查出here,对我来说真的很好。

+0

真的适合我!非常感谢。 – Samblg 2013-04-05 12:52:22