<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://monobook.org/w/index.php?action=history&amp;feed=atom&amp;title=Xamairn.iOS%E3%81%A7SettingsBundle%E3%81%AEDefaultValue%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84</id>
	<title>Xamairn.iOSでSettingsBundleのDefaultValueが取得できない - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://monobook.org/w/index.php?action=history&amp;feed=atom&amp;title=Xamairn.iOS%E3%81%A7SettingsBundle%E3%81%AEDefaultValue%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84"/>
	<link rel="alternate" type="text/html" href="https://monobook.org/w/index.php?title=Xamairn.iOS%E3%81%A7SettingsBundle%E3%81%AEDefaultValue%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84&amp;action=history"/>
	<updated>2026-06-04T15:34:43Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://monobook.org/w/index.php?title=Xamairn.iOS%E3%81%A7SettingsBundle%E3%81%AEDefaultValue%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84&amp;diff=14050&amp;oldid=prev</id>
		<title>Administrator: ページの作成:「  Xamarin.iOSでSettings Bundleから値を取得しようとすると「DefaultValue」に設定した値ではなく必ずnullが返ってきてしまう。iPad…」</title>
		<link rel="alternate" type="text/html" href="https://monobook.org/w/index.php?title=Xamairn.iOS%E3%81%A7SettingsBundle%E3%81%AEDefaultValue%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84&amp;diff=14050&amp;oldid=prev"/>
		<updated>2021-01-28T04:34:11Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「  &lt;a href=&quot;/wiki/Xamarin.iOS&quot; title=&quot;Xamarin.iOS&quot;&gt;Xamarin.iOS&lt;/a&gt;でSettings Bundleから値を取得しようとすると「DefaultValue」に設定した値ではなく必ずnullが返ってきてしまう。&lt;a href=&quot;/wiki/IPad&quot; title=&quot;IPad&quot;&gt;iPad&lt;/a&gt;…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Xamarin.iOS]]でSettings Bundleから値を取得しようとすると「DefaultValue」に設定した値ではなく必ずnullが返ってきてしまう。[[iPad]]の設定画面上ではちゃんと表示されているのにアプリからだとnullが返ってくる。&lt;br /&gt;
&lt;br /&gt;
これは[[Xamarin.iOS]]に限った話ではなく[[Objective-C]]や[[Swift]]でも同様。&lt;br /&gt;
&lt;br /&gt;
この問題を回避するにはアプリ起動時一発目に以下のような[[コード]]を走らせるとよい。&lt;br /&gt;
[[ググれ]]ば[[Objective-C]]や[[Swift]]での実装例もでてくる。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
public override void ViewDidLoad()&lt;br /&gt;
{&lt;br /&gt;
    base.ViewDidLoad();&lt;br /&gt;
    SetDefaultsFromSettingsBundle();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void SetDefaultsFromSettingsBundle()&lt;br /&gt;
{&lt;br /&gt;
    var settingsUrl = NSBundle.MainBundle.PathForResource(&amp;quot;Settings.bundle/Root.plist&amp;quot;, null);&lt;br /&gt;
    var settingsPlist = new NSDictionary(settingsUrl);&lt;br /&gt;
    if (settingsPlist == null)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    var preferences = settingsPlist[&amp;quot;PreferenceSpecifiers&amp;quot;] as NSArray;&lt;br /&gt;
    if (preferences == null)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    var ud = NSUserDefaults.StandardUserDefaults;&lt;br /&gt;
&lt;br /&gt;
    foreach (var pitem in NSArray.FromArray&amp;lt;NSDictionary&amp;gt;(preferences))&lt;br /&gt;
    {&lt;br /&gt;
        // keyがないのはセパレーター等なのですっ飛ばす&lt;br /&gt;
        var key = pitem[&amp;quot;Key&amp;quot;] as NSString;&lt;br /&gt;
        if (key == null)&lt;br /&gt;
            continue;&lt;br /&gt;
&lt;br /&gt;
        // 初期値を取得する&lt;br /&gt;
        var val = pitem[&amp;quot;DefaultValue&amp;quot;];&lt;br /&gt;
        if (val == null)&lt;br /&gt;
            continue;&lt;br /&gt;
&lt;br /&gt;
        // 既存のvalueがnullじゃないのは入力済みなのですっ飛ばす&lt;br /&gt;
        var cur = ud.ValueForKey(key);&lt;br /&gt;
        if (cur != null)&lt;br /&gt;
            continue;&lt;br /&gt;
&lt;br /&gt;
        // 明示的に保存する。&lt;br /&gt;
        ud.SetValueForKey(val, key);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // いらない気もするが明示的にフラッシュしとく。&lt;br /&gt;
    ud.Synchronize();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category: Xamarin.iOS]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
</feed>