Как получить пользовательские настройки в iOS? [Xcode 7 + Swift 2]

Я использую 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 let name = settings.stringForKey("key") {
     print(name)
   }

но как я могу на самом деле прочитать значение внутри "ключа"?

0 ответов

Другие вопросы по тегам