TodayExtension を既存のアプリに追加しようとしていますが、アプリと拡張機能が NSUserDefaults を介してデータを共有するようにしたいと考えています。このチュートリアルhttp://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/によると、 私はそれが好きでした:
- Today 拡張機能を使用して新しいターゲットを作成する
- 拡張機能とアプリに新しいアプリ グループを追加します
- コードをアプリに追加
- 拡張機能にコードを追加
アプリコード
func updateExtensionData() {
let key = "identityCode"
let valueForStore:Float = 2.0
let extensiontDefaults = NSUserDefaults(suiteName: "group.company.mineSharedDefaults")
extensiontDefaults?.setFloat(valueForStore, forKey: key)
let results = extensiontDefaults?.synchronize()
let checkCode = extensiontDefaults?.objectForKey(key)
print("code for save \(valueForStore) synchronize result \(results) readed code \(checkCode!)")
}
延長コード
private func updateData() {
let key = "identityCode"
let extensionDefaults = NSUserDefaults(suiteName: "group.company.mineSharedDefaults")
let checkCode = extensionDefaults?.floatForKey(key)
print("synchronize result \(resut) readed code \(checkCode!)")
}
問題
私の問題は、拡張機能が常に 2 ではなく 0 を読み取ることです。明らかに何かが欠けています。AppGroup と NSUserDefaults の場合、iOS8 と 9 の間に大きな違いはありますか? アプリの間にwatchOS2があることは知っています。
より明確にするために、これは App and Extension NSUserDefaults のキーです
アプリキー
Appleキーボード
AppleKeyboardsExpanded
EmojiKeybordHandled の追加
AppleLanguages
Appleパスコードキーボード
優先言語
AppleLocale
NSInterfaceStyle
MSVLoggingMasterSwitchEnabledKey
NS言語
AppleITunesStoreItemKinds
IDコード
AppleLanguagesDidMigrate
PKEnableStockholmSettings
拡張キー
Appleキーボード
AppleKeyboardsExpanded
EmojiKeybordHandled の追加
AppleLanguages
Appleパスコードキーボード
優先言語
AppleLocale
NSInterfaceStyle
MSVLoggingMasterSwitchEnabledKey
NS言語
AppleITunesStoreItemKinds
AppleLanguagesDidMigrate
PKEnableStockholmSettings
キーidentityCode
が拡張子にまったく表示されていないことは明らかです。