2017-10-31 13 views
-1

私は自分のアプリにステッカーを作成してメッセージに使用できるように、私のアプリにステッカー拡張を追加しようとしています。しかし、ファイルのパスは異なっているように見えるので、画像をファイルパスに保存してからメッセージ拡張子にロードすることはできませんでした。 基本的に、アプリとその拡張機能との間でデータを共有する最良の方法は何ですか?特にNSUserDefaultsには大きすぎるデータです。Swift:メインプロジェクトとメッセージの間で動的画像を共有する方法

+0

はあなたがから画像ファイルのパスを取得したいもしかしてあなたのアプリは別の場所からそれを使用しますか? – trungduc

答えて

0

にアクセスすることができます。

これを有効にしてデータを共有するためのチュートリアル全体は、ここ(http://www.theappguruz.com/blog/ios8-app-groups)にあります。

AppGroupsを有効にした後、あなたがこのような共有コンテナ内に作成されたステッカー保存することができます:画像を取得するための

if let fileManager = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "") 
{ 
    let imageName = "imageName" // write your image name here 
    let imageLocationUrl = fileManager.appendingPathComponent(imageName) 

    // for saving image 

    if let data:Data = UIImagePNGRepresentation(image) { 
     do { 
      try data.write(to: imageLocationUrl) 
     }catch { 
       // couldn't write 
     } 
    } 
} 

を、

if let fileManager = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "") 
{ 
    let imageName = "imageName" // write your image name here 
    let imageLocationUrl = fileManager.appendingPathComponent(imageName) 

    // for getting image 

    if let data:Data = Data(contentsOfFile: imageLocationUrl.path) { 
     let image = UIImage(data: data, scale: UIScreen.main.scale) 
    } 
}  
0

あなたのメイン・プロジェクト、およびアプリの拡張子の間でデータを共有したい場合は、AppGroupsを有効にする必要があり、私は一緒にグループにターゲットを入れ、答えを考え出した、あなたは同じファイルマネージャパスに

関連する問題