2017-01-19 54 views
2

ios不让包含的应用程序和包含的扩展共享一个公共容器,因此UserDefaults是建议的解决方案。在sirikit意图处理程序和应用程序之间传递数据

我已经使用UserDefaults与诗丽吉意图处理程序假定该处理程序的行为作为扩展如下尝试:

内部IntentHandler.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") 

内部ViewController.swift在viewDidLoad中

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 
} 

我可以在我的ipad屏幕上看到与key1和key2对应的字符串,但不能用于key3,同步代码并没有帮助。

这里是我的问题:

1)诗丽吉处理来自其他分机有什么不同?如果是的话如何将数据传递给我的应用程序?如果没有我不正确地使用UserDefaults?

2)有没有更好的方式来处理应用程序和它的扩展之间的IPC,我只需要在它们之间传递简单的字符串消息。

使用SWIFT 3.0和Xcode中8.2.1

回答

0

有一种叫做MMWomhole。它一定会做这项工作。

0

检查是否已为您要访问该组的所有目标启用了应用程序组。在“应用程序组”下检查项目 - >目标 - >功能。

相关问题