現在iOSアプリの開発を行っています。 本体標準の設定アプリ内の各アプリの設定(SettingsBundle)でユーザーが設定した値を、アプリ内で使用したいと思っています。 しかし、一度設定画面を開いて設定をしないと、値を取得できないということが分かったので、以下のようなコードにしました。 let ud = NSUserDefaults.standardUserDefaults().stringForKey("tweetTemplate_preference") if let templateItem = ud { self.tweetTemplate = templateItem }else{ self.tweetTemplate = "default" } これで、 「SettingBundleのIdentifierが"tweetTemplate_preference"となっている項目から値を取得し、自クラスのtweetTemplateという属性に代入される。もしも一度も設定していなければ、問答無用でtweetTemplateに"default"が代入される。」 という認識なのですが、間違ってますでしょうか…? これをコーディングしていたプロジェクトではうまく動作せず、設定後も"default"が代入されてしまいました。 そこで、新しくプロジェクトを作り、 let ud = NSUserDefaults.standardUserDefaults().stringForKey("name_preference") if let templateItem = ud { label.text = templateItem }else{ label.text = "default" } とし、root.plistも合わせて設定をしたところ、設定アプリの設定通りにlabelのtextが変更されました。 この二つのコードの違いがよくわからないのですが、何か足りない点や間違っている点などがあるのでしょうか…? わかりにくい質問で申し訳有りません。 何かお気づきの点など教えていただけますと幸いです。
↧