1

我正在使用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>

然后我尝试:

  1. 读取默认值(“文本”)
  2. 更改 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”中的值呢?

4

0 回答 0