設定バンドルを自分のアプリケーションに追加しました.Xcodeでは、プロジェクトツリービューのルートに表示されます。設定バンドルの値がnilを返す
Root.plist
ファイルは次のようになります。私は、iOSの設定アプリを開くと
<?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 -->
エントリが下部に表示されて、私は完全に罰金私の設定を表示し、編集することができます。
ただし、コードからこれらの値を取得することはできません。ここに私のコードです:私もud.objectForKey
とud.valueForKey
を試してみました
static func loadSettings() {
let ud = NSUserDefaults.standardUserDefaults()
ud.synchronize()
Settings.hostName = ud.stringForKey("service_hostname")
// etc
}
- の両方が同様にnil
を返します。
Settings.hostName
を設定した後、Xcodeデバッガは、設定アプリで明示的な値を設定しても、nil
の値を報告します。
私は、誰かが手動でNSMutableDictionary
に直接Root.plist
ファイルをロードし、NSUserDefaults.standardUserDefaults().registerDefaults
を呼び出すObjective-Cのコードの塊を投稿が、それはハックのように思える(と私はそれを動作させることはできません。このスレッド(iPhone App : How to get default value from root.plist?)を見ましたコンパイラはstringByAppendingPathComponent
がもう存在しないと言っているので、Swiftで)
なぜ、NSUserDefaults
が設定アプリケーションから設定を取得していないのですか?
私は狂っていたと思います。長い間ソリューションを探しました!なぜこうなった?知っている人はいますか? –
@Daiこれは私のために働かない、それは無価値を与える..私は何かが不足している? – mm24
@ mm24 "それは無価値を与えます" - これは私の投稿についてのもので、なぜソリューションがゼロ値をチェックしてコードのデフォルト値を提供するのかです。 – Dai