工程中添加Resource->Setting Bundle

相關資料:https://developer.apple.com/library/iOS/#documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html

1、與工程中添加Resource->Setting Bundle
創(chuàng)建
文件說明:
en.lproj為多語言配置目錄該目錄的strings文件只有在IOS系統(tǒng)語言環(huán)境與文件夾想符才能讀取。
Root.plist為Setting頁面的根目錄配置文件。
此時編譯運行后已經(jīng)能夠看到通用設置中對應程序的Setting。

2、Setting頁面制作Root.plist
Root.plist組成:
PreferenceSpecifiers 包含Setting頁面中的子項
Strings Filename 指定多語言環(huán)境下的strings文件對應語言環(huán)境生效
StringsTable 指定strings文件直接生效


以下是一個Setting設置plist例子

Root.plist

[html] view plain copy
<?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>PreferenceSpecifiers</key>  
    <array>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>Sound</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSToggleSwitchSpecifier</string>  
            <key>Title</key>  
            <string>Play Sound</string>  
            <key>Key</key>  
            <string>play_sound_preference</string>  
            <key>DefaultValue</key>  
            <false/>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSToggleSwitchSpecifier</string>  
            <key>Title</key>  
            <string>3D Sound</string>  
            <key>Key</key>  
            <string>3D_sound_preference</string>  
            <key>DefaultValue</key>  
            <false/>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>User Info</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSTextFieldSpecifier</string>  
            <key>Title</key>  
            <string>Name</string>  
            <key>Key</key>  
            <string>user_name</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSMultiValueSpecifier</string>  
            <key>Title</key>  
            <string>Experience Level</string>  
            <key>Key</key>  
            <string>experience_preference</string>  
            <key>DefaultValue</key>  
            <string>0</string>  
            <key>Titles</key>  
            <array>  
                <string>Beginner</string>  
                <string>Expert</string>  
                <string>Master</string>  
            </array>  
            <key>Values</key>  
            <array>  
                <string>0</string>  
                <string>1</string>  
                <string>2</string>  
            </array>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>Gravity</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSSliderSpecifier</string>  
            <key>Key</key>  
            <string>gravity_preference</string>  
            <key>DefaultValue</key>  
            <integer>1</integer>  
            <key>MinimumValue</key>  
            <integer>0</integer>  
            <key>MaximumValue</key>  
            <integer>2</integer>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>Other</string>  
        </dict>  
        <dict>  
            <key>File</key>  
            <string>Other</string>  
            <key>Type</key>  
            <string>PSChildPaneSpecifier</string>  
            <key>Title</key>  
            <string>Other Setting</string>  
            <key>Key</key>  
            <string>other_setting</string>  
        </dict>  
    </array>  
    <key>Strings Filename</key>  
    <string>Root</string>  
</dict>  
</plist>  

Other.plist(直接復制Root.plist更改Item的Key)
[html] view plain copy

<?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>PreferenceSpecifiers</key>  
    <array>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>Sound</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSToggleSwitchSpecifier</string>  
            <key>Title</key>  
            <string>Play Sound</string>  
            <key>Key</key>  
            <string>oplay_sound_preference</string>  
            <key>DefaultValue</key>  
            <false/>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSToggleSwitchSpecifier</string>  
            <key>Title</key>  
            <string>3D Sound</string>  
            <key>Key</key>  
            <string>o3D_sound_preference</string>  
            <key>DefaultValue</key>  
            <false/>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>User Info</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSTextFieldSpecifier</string>  
            <key>Title</key>  
            <string>Name</string>  
            <key>Key</key>  
            <string>ouser_name</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSMultiValueSpecifier</string>  
            <key>Title</key>  
            <string>Experience Level</string>  
            <key>Key</key>  
            <string>oexperience_preference</string>  
            <key>DefaultValue</key>  
            <string>0</string>  
            <key>Titles</key>  
            <array>  
                <string>Beginner</string>  
                <string>Expert</string>  
                <string>Master</string>  
            </array>  
            <key>Values</key>  
            <array>  
                <string>0</string>  
                <string>1</string>  
                <string>2</string>  
            </array>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSGroupSpecifier</string>  
            <key>Title</key>  
            <string>Gravity</string>  
        </dict>  
        <dict>  
            <key>Type</key>  
            <string>PSSliderSpecifier</string>  
            <key>Key</key>  
            <string>ogravity_preference</string>  
            <key>DefaultValue</key>  
            <integer>1</integer>  
            <key>MinimumValue</key>  
            <integer>0</integer>  
            <key>MaximumValue</key>  
            <integer>2</integer>  
        </dict>  
    </array>  
    <key>Strings Filename</key>  
    <string>Root</string>  
</dict>  
</plist>  

3、讀取Setting配置
Setting是以Key Value的形式存儲在NSUserDefaults中所以當Setting配置文件Key相同時會相互影響。

[cpp] view plain copy
NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];
//[userdefaults valueForKey:(NSString *)];//根據(jù)Key獲取數(shù)據(jù)
Setting變更同步注冊通知

[cpp] view plain copy
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(change) name:@"NSUserDefaultsDidChangeNotification" object:nil];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1,Search Bar 怎樣去掉背景的顏色(storyboard里只能設置background顏色,可是發(fā)現(xiàn)cl...
    以德扶人閱讀 2,879評論 2 50
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,622評論 30 472
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 最近一朋友正準備跳槽,就從各處搜索整理一些基礎,便于朋友復習,也便于自己復習查看. 1. 回答person的ret...
    smile麗語閱讀 1,904評論 0 7
  • 只為連接一千個證券極客……陳sir費心了
    黃老邪怪閱讀 392評論 0 0

友情鏈接更多精彩內(nèi)容