Я добавил в свой набор настройки приложение и в Xcode он появляется в корне моего представления дерева проектов.Параметры набора параметров, возвращающие нуль
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>Service</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Hostname</string>
<key>Key</key>
<string>service_hostname</string>
<!-- and so on -->
Когда я открываю приложение Настройки прошивки появится запись в нижней части, и я могу показать и редактировать мои настройки прекрасно.
Однако я не могу получить эти значения из кода. Вот мой код:
static func loadSettings() {
let ud = NSUserDefaults.standardUserDefaults()
ud.synchronize()
Settings.hostName = ud.stringForKey("service_hostname")
// etc
}
Я также попытался ud.objectForKey
и ud.valueForKey
- оба возвращают nil
, а также.
После установки Settings.hostName
отладчик Xcode сообщает, что он имеет значение nil
, несмотря на то, что я устанавливаю явное значение в приложении «Настройки».
Я видел эту тему (iPhone App : How to get default value from root.plist?), где кто-то разместил фрагмент кода Objective-C, который вручную загружает файл Root.plist
непосредственно в NSMutableDictionary
и вызывает NSUserDefaults.standardUserDefaults().registerDefaults
, но который, кажется, как взломать (и я не могу заставить его работать в Swift, потому что компилятор говорит, что stringByAppendingPathComponent
больше не существует)
Почему нет NSUserDefaults
, чтобы получить настройки из приложения «Настройки»?
Я думаю, что сошел с ума. Искал решение в течение длительного времени! Почему это происходит? Кто-нибудь знает? –
@ Дай это не работает для меня, оно дает нулевое значение .. я чего-то не хватает? – mm24
@ mm24 «это дает значение nil» - вот о чем идет мое сообщение, и почему решение должно проверять значения nil и предоставлять значение по умолчанию в коде. – Dai