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를 처리하는 더 좋은 방법이 있습니다. SWIFT 3.0 및 엑스 코드 MMWomhole라고 거기에 뭔가 8.2.1