2016-05-02 15 views
2

AssetsLibraryが廃止されましたので、写真フレームワーク、具体的にはPHPhotoLibraryを使用して、画像と動画をユーザーのカメラロールに保存することになっています。私はRegiftを使用してビデオからGIFを作成し、私はGIFは私の一時ディレクトリ内に存在することを確認することができますiOS 9 gifを写真ライブラリに保存

func saveImageAsAsset(url: NSURL) -> SignalProducer<String, NSError> { 
    return SignalProducer { observer, disposable in 
     var imageIdentifier: String? 
     PHPhotoLibrary.sharedPhotoLibrary().performChanges({ 
      let changeRequest = PHAssetChangeRequest.creationRequestForAssetFromImageAtFileURL(url) 
      let placeholder = changeRequest?.placeholderForCreatedAsset 
      imageIdentifier = placeholder?.localIdentifier 
     }, completionHandler: { success, error in 
      if let identifier = imageIdentifier where success { 
       observer.sendNext(identifier) 
      } else if let error = error { 
       observer.sendFailed(error) 
       return 
      } 
      observer.sendCompleted() 
     }) 
    } 
} 

:ReactiveCocoaを使用して

、そのような要求は次のようになります。しかし、私がカメラのロールにそのgifを保存すると、私は不思議なエラー:NSCocoaErrorDomain -1 (null)、実際には非常に有用です。

誰もこの問題を経験したことがありますか?

+0

解決方法が見つからない場合も、サポートされていないファイル形式と関連があります。 – NewShelbyWoo

答えて

0

これを試すことができます。

let data = try? Data(contentsOf: /*Your-File-URL-Path*/) 
PHPhotoLibrary.shared().performChanges({ 
    PHAssetCreationRequest.forAsset().addResource(with: .photo, data: data!, options: nil) 
}) 
+0

ようこそ!このコードは問題の問題を解決する可能性がありますが、このコードが機能する理由を説明する簡単な説明を追加することで、この回答を改善することができます。 –

関連する問題