參數(shù)和設(shè)置是變動(dòng)較少的數(shù)值,可以用于配置應(yīng)用程序的行為或外觀(guān)。如果 WatchKit 應(yīng)用程序使用參數(shù)進(jìn)行配置,就可以在工程中添加一個(gè) WatchKit 專(zhuān)用設(shè)置包來(lái)顯示這些設(shè)置。此設(shè)置包置于 iOS 應(yīng)用程序中,而設(shè)置本身會(huì)在用戶(hù)手機(jī)上顯示。
WatchKit 設(shè)置包與 iOS 設(shè)置工作包的工作流程相同。此設(shè)置包定義了系統(tǒng)控件和各控件修改的參數(shù)名稱(chēng)。用戶(hù)手機(jī)的 Apple Watch 應(yīng)用程序會(huì)獲取設(shè)置包信息以便顯示實(shí)際控件。當(dāng)用戶(hù)更改控件數(shù)值時(shí),系統(tǒng)會(huì)更新底層參數(shù)值。
如需獲取設(shè)置包工作的詳細(xì)信息,請(qǐng)參考 Preferences and Settings Programming Guide。
請(qǐng)按照以下操作向 Xcode 項(xiàng)目添加 WatchKit 設(shè)置包:
Settings-Watch.bundle
名稱(chēng)來(lái)創(chuàng)建設(shè)置包,并添加到 iOS 應(yīng)用程序中。命名 Settings-Watch.bundle 包是為了與 iOS 應(yīng)用程序包進(jìn)行區(qū)分。
WatchKit 設(shè)置包的初始內(nèi)容與 iOS 應(yīng)用程序設(shè)置包相同,詳見(jiàn)清單 12-1。清單 12-1 WatchKit 設(shè)置包的內(nèi)容
Settings-Watch.bundle/
Root.plist
en.lproj/
Root.strings
關(guān)于如何配置設(shè)置包內(nèi)容,請(qǐng)查看 Implementing an iOS Settings Bundle。有關(guān)設(shè)置包的詳細(xì)信息,請(qǐng)查看?Settings Application Schema Reference。
WatchKit 設(shè)置必須存儲(chǔ)在共享組容器中,iOS 應(yīng)用程序和 WatchKit 擴(kuò)展均可對(duì)其進(jìn)行訪(fǎng)問(wèn)。因?yàn)?WatchKit 設(shè)置包位于 iOS 應(yīng)用程序,系統(tǒng)會(huì)默認(rèn)把參數(shù)值寫(xiě)入iOS應(yīng)用程序容器。如果想訪(fǎng)問(wèn) WatchKit 擴(kuò)展,您必須對(duì)項(xiàng)目執(zhí)行以下配置:
Root.plist
文件添加 ApplicationGroupContainerIdentifier
鍵。
當(dāng)配置 App Group 功能時(shí),把此鍵所對(duì)應(yīng)索引設(shè)置為相同的標(biāo)示符。要想訪(fǎng)問(wèn)存儲(chǔ)于一組容器中的參數(shù),請(qǐng)使用 initWithSuiteName: 方法來(lái)創(chuàng)建 NSUserDefaults
對(duì)象。調(diào)用此方法時(shí),請(qǐng)指定組容器標(biāo)示符所用的字符串。然后使用用戶(hù)默認(rèn)對(duì)象來(lái)訪(fǎng)問(wèn)參數(shù)值。下面提供了訪(fǎng)問(wèn)自定義組的示例:
清單 12-2 訪(fǎng)問(wèn)一個(gè)共享組容器的參數(shù)
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.example.MyWatchKitApp"];
BOOL enabled = [defaults boolForKey:@"enabled_preference"];
如何訪(fǎng)問(wèn)參數(shù)的值,更多信息請(qǐng)參考 NSUserDefaults Class Reference。