2016년 9월 20일 화요일

App Groups를 이용한 호스트 앱과 Extension 의 데이터 이동 @@ in Swift3 - Xcode 8.0 iOS 10

App Groups 를 이용한 Extension 과 호스트 앱의 데이터 연동

1. FILE -> NEW -> Target 을 눌러 Today Extension 을 추가한다.


Today Extension 을 추가하면 Activate "---" scheme? 라는 문구가 나오는데
그냥 Activate 누르면 된다




이제 프로젝트를 선택해 Capabilities -> App Groups 를 선택해 ON 으로 한 뒤 그룹을 추가해준다


잘못된 앱 그룹 이름은 아래 v 체크된 항목에 오류메세지를 낼 수 있으니  잘 읽고 따라해야 한다.
ex )"group.data.Extension"
이름 지을때 오류가 계속 나타난다면 group.앱이름 을 넣으면 된다.

만들어졌다면 이제 TARGETS -> Extension App 을 선택하여 위와 동일하게
Capabilities -> App Groups 을 ON 으로 변경한다
앱 그룹 리스트 중에 금방전에 만든 앱이름이 뜰 것이다 선택하자!

여기까지 해서 앱과 Extension을 연결 하였다
이제 코딩으로 들어가 데이터 이동이 되도록 해보자
먼저 ViewController에 "name"이라는 키에 값을 넣는 코딩이다
-ViewController
-------------------------------------------------------------------------------------------

 override func viewDidLoad() {

 let shareDefaults = UserDefaults(suiteName: "그룹명")

  shareDefaults!.set("testApp", forKey:"name")
}
===========================================================================

아래코딩은 Extension Widget 에 들어가는 코드이며 저장된 키의 값을 가져온다
-TodayViewController
-------------------------------------------------------------------------------------------
override func viewDidLoad() {  
let shareDefaults = UserDefaults(suiteName: "그룹명")
        let name =  shareDefaults!.object(forKey: "name") as? String

        print(name)
}
===========================================================================
print를 찍어보면 "testApp" 이라는 값이 출력되는것을 확인 할 수 있다
라벨이나 텍스트 필드를 만들어 테스트 해보자


댓글 없음:

댓글 쓰기

추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...