2014-09-23 4 views
12

내 app과 Today Extension간에 userDefaults를 통해 데이터를 성공적으로 공유했지만 응용 프로그램의 Documents 폴더에있는 실제 파일에 문제가 있습니다.Today 확장 프로그램의 App Documents 폴더에 액세스

내 응용 프로그램에서이 코드를 사용하는 경우 :

/var/mobile/Containers/Data/Application/296494AA-946C-40E0-8646-F0895E131DCB/Documents/ 

하지만 확장에 반환 :

var documentsDir:NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String 

가 반환 분명히

/var/mobile/Containers/Data/PluginKitPlugin/AB484342-537A-4CE7-9EF3-F2CAE352C8A3/Documents/ 

과를, 파일이 있습니다 거기 없어.

let containerURL = manager.containerURLForSecurityApplicationGroupIdentifier("group.com.company.app") 
let filePath = containerURL.path 

을하지만 반환 :

은 내가 사용해야하는 곳 읽을

/private/var/mobile/Containers/Shared/AppGroup/CD7CF610-EB5F-4246-8D30-D7F8BFA6A219 

중 하나가 작동하지 않았다.

iOS 8 Today Extension에서 문서에있는 컨테이너 응용 프로그램의 파일을 읽으려면 어떻게해야합니까?

감사합니다.

답변

14

확장 프로그램에서 포함하는 앱의 문서 폴더에 액세스 할 수 없습니다.

하지만 포함하는 앱과 모든 확장 프로그램에서 액세스 할 수있는 공유 컨테이너를 만들 수 있습니다.

URLForForecurityApplicationGroupIdentifier를 사용하여 올바른 길을 가고 있습니다. 앱과 확장 프로그램에서 모두 사용해야합니다. 문서 폴더가 아니라 다른 컨테이너에 액세스합니다. 이 문서 폴더에 데이터를 저장 된 기존 응용 프로그램을 업데이트하는 경우

, 당신은 S8-오늘-확장이 링크

체크 아웃로 데이터를 이동해야합니다. http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/

+0

.json 파일에 액세스 할 수 있습니까? 이 safariContentBlocker 컨테이너로 ??? – JAck

+2

링크에는 디스크의 공유 컨테이너 사용에 대한 내용이 없습니다. NSUserDefaults를 사용합니다. – funroll

관련 문제