14

アプリとその Today 拡張機能の間で userDefaults を介してデータを正常に共有しましたが、アプリの Documents フォルダーにある実際のファイルに関しては問題があります。

アプリでこのコードを使用すると:

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

戻ります:

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

しかし、拡張機能では次のように返されます:

/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 拡張機能で読み取れるようにするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

16

含まれているアプリのドキュメント フォルダーに拡張機能からアクセスすることはできません。

ただし、含まれているアプリとそのすべての拡張機能からアクセスできる共有コンテナーを作成できます。

あなたは、containingURLForSecurityApplicationGroupIdentifier を使用して正しい軌道に乗っています。アプリと拡張機能の両方でそれを使用するだけです。ドキュメント フォルダーにはアクセスしませんが、別のコンテナーにアクセスします。

ドキュメント フォルダーにデータを保存している既存のアプリを更新する場合は、データを s8-today-extension に移動する必要があります。

このリンクをチェックしてください。 http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/

于 2014-09-25T03:29:24.400 に答える