Я создал простое приложение в Swift, которое содержит WebViewControl
.Благодаря SettingsBundle
пользователь может указать URL, который затем открывается в WebView.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>PSTextFieldSpecifier</string>
<key>Title</key>
<string>URL</string>
<key>Key</key>
<string>app_url</string>
<key>DefaultValue</key>
<string>https://myurl.com</string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>URL</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
</array>
</dict>
</plist>
Это отлично работает.Однако при попытке получить app_url
в Swift у меня возникла проблема.
override func viewDidLoad() {
super.viewDidLoad()
registerSettingsBundle()
print("retrieving key")
if let appUrl = UserDefaults.standard.string(forKey: "app_url") {
print("got it " + appUrl)
}
}
func registerSettingsBundle(){
let appDefaults = [String:AnyObject]()
UserDefaults.standard.register(defaults: appDefaults)
}
Это выводит retrieving key
на консоль, но не второй оператор печати.
Это работало некоторое время назад, но недавнее обновление сломало его.Что я делаю неправильно?Изменился ли API как-то?Я прочитал документацию Apple по UserDefaults , но она мне пока не помогла.
Правка в отношении marked as duplicate
: крайне важно, чтобы пользовательвозможность изменить app_url
с помощью приложения Настройки в iOS.Просто чтение файла plist как dict недостаточно.Пожалуйста, извините, я впервые экспериментирую с приложениями для iOS.