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

답변

0

를 사용

. 그것은 확실히 일을 할 것입니다.

0

그룹에 액세스하려는 모든 대상에 대해 응용 프로그램 그룹이 활성화되어 있는지 확인하십시오. "App Groups"에서 프로젝트 -> 대상 -> 기능을 체크인하십시오.