2017-12-05 9 views
1

UserDefaults.standardに格納されている値を取得しようとしていますが、現在Root.plist内に設定されている文字列値が期待どおりに読み込まれていません。 XcodeのストーリーボードUI(例えばhttp://www.google.com)内からデフォルト値が割り当てられていますが、ViewControllerスウィフトコード内で読み取られた場合はゼロになります。 ViewControllerののviewDidLoad(内iOS 11 - UserDefaults.standard文字列値なし

)、私は)のViewControllerのviewWillAppear(内

UserDefaults.standard.register(defaults: [String : Any]()) 

を呼び出しています、私は、次のように文字列値を読み取ろう:

let userDefaults = UserDefaults.standard 
    var defaultURL = userDefaults.string(forKey: "server_url") 

しかしdefaultURLはnilです。ここで何が起こっているか完全にはわからない!誰も助言することはできますか?

答えて

0

あなたは具体的なキー(S)と値(複数可)

UserDefaults.standard.register(defaults: ["server_url" : "http://www.google.com/"]) 
+0

おかげで、感謝を登録する必要があります - しかし、なぜ私たちはこれを実行する必要がありますか?確かに、私はちょうどUIウィジェットから格納されたデフォルト値を取って、それをプログラムで毎回行うのではなく、永遠に使用したいのですか?おそらく、私はXCode Storyboard UIが何をしているかについて何か不足していますか?同様にそれはそうストーリーボードエディタでその空白のままにしておくかもしれません... UserDefaults' 'のデフォルト値を登録する – SD123

+0

目的は、アプリケーションの最初の起動時に定義された状態を持つことです。後で別の値を保存すると、この値が使用されます。環境設定ファイルを削除した後、またはアプリケーションを再インストールすると、値はデフォルト値に戻ります。 – vadian

+0

さて、それは明確にするのに役立ちます、ありがとう - 私たちは、アプリケーションの最初の起動時に同期していない設定バンドル値を持っているときに(例えば設定値は、www.apple.comに設定されている、と 'UserDefaults'値がされています上記のようにwww.google.comに登録してください)どうすれば解決できますか?それは、バンドルは私がプログラムで設定されているものと同期していない設定のように見えます...もちろん – SD123