iosでは、格納されているアプリケーションと含まれている拡張が共通のコンテナを共有することはできないため、UserDefaultsが提案されたソリューションです。sirikitインテントハンドラとアプリ間でデータを渡すと
Iは、拡張は、以下のようにハンドラの動作仮定シリキット意図ハンドラとUserDefaultsを用いて試みた:
IntentHandler.swift ViewController.swift内部
let shared = UserDefaults(suiteName:XXXXXXXX.group...)
shared?.set("saved value 1", forKey: "key1")
shared?.set("saved value 2", forKey: "key2")
shared?.set("saved value 3", forKey: "key3")
内部
let shared = UserDefaults(suiteName:XXXXXXXX.group...)
if let temp1 = shared?.string(forKey:"key1")
{
contentLabel.text = temp1
}
if let value = shared?.string(forKey: "key2")
{
valueLabel.text = value
}
if let key = shared?.string(forKey: "key3")
{
keyLabel.text = key
}
のviewDidLoadに
私のipad画面でkey1とkey2に対応する文字列を見ることはできますが、key3ではできません。
ここに私の質問は以下のとおりです。
1)されているシリキットハンドラは、他の拡張機能は異なりますか?はいの場合、データをアプリに渡す方法は?私はUserDefaultsを間違って使用していませんか?
2)アプリとその拡張機能の間で簡単な文字列メッセージを渡すだけでIPCを処理する方法があります。 MMWomholeと呼ばれるものがありますSWIFT 3.0とXcode 8.2.1