2017-01-19 5 views
2

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

答えて

0

を使用して

。それは間違いなく仕事をするでしょう。

0

グループにアクセスするすべてのターゲットのアプリケーショングループが有効になっていることを確認します。 「App Groups」のプロジェクト - >あなたのターゲット - >機能をチェックインします。

関連する問題