我正在使用Xcode 7 + Swift 2。
我setting.bundle
在我的应用程序的根目录中添加了一个文本字段。
Root.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>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Controller Settings:</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Enter Text</string>
<key>Key</key>
<string>key</string>
<key>DefaultValue</key>
<string>Text</string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>NumbersAndPunctuation</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
</array>
</dict>
</plist>
然后我尝试:
- 读取默认值(“文本”)
- 更改 iOS 设置中的文本字段,然后阅读新的
String
.
我使用了这两行代码:
let settings = NSUserDefaults.standardUserDefaults()
let setting_value = settings.stringForKey("key")! as String
但我得到的只是这个错误,应用程序无法继续:
fatal error: unexpectedly found nil while unwrapping an Optional value
我想要的只是阅读设置并将其显示String
到标签上。
谢谢。
编辑:我现在明白错误是因为尚未分配值。为了防止我在前面加上'if'的错误:
if let name = settings.stringForKey("key") {
print(name)
}
但是我如何才能真正读取“key”中的值呢?