端末の画像ファイルをサーバにアップロードする処理を作っているのですが
ファイルへのパスの取得まではうまく動くのですが、NSDataでデータを取得しようとすると以下のエラーとなり画像データが取得できません
Optional(Error Domain=NSCocoaErrorDomain Code=257 "操作を完了できませんでした。(Cocoa エラー 257。)" UserInfo=0x17536d10 {NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_***.JPG, NSUnderlyingError=0x17376440 "操作を完了できませんでした。Operation not permitted"})
また、処理は以下のようにしています。変数urlには「file:///」の形で正しく設定されています
`
var error: NSError?
var imageData = NSData(contentsOfURL: url, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &error)
if error == nil {
println("success")
} else {
println(error)
}
`
また、ファイルへのurlの取得は以下の形になります
`
func callImagePicker() {
let ipc:UIImagePickerController = UIImagePickerController();
ipc.delegate = self
UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(ipc, animated:true, completion:nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
picker.dismissViewControllerAnimated(true, completion: nil);
var pickedURL:NSURL = info[UIImagePickerControllerReferenceURL] as! NSURL let fetchResult: PHFetchResult = PHAsset.fetchAssetsWithALAssetURLs([pickedURL], options: nil) let asset: PHAsset = fetchResult.firstObject as! PHAsset PHImageManager.defaultManager().requestImageDataForAsset(asset, options: nil, resultHandler: {(imageData: NSData!, dataUTI: String!, orientation: UIImageOrientation, info: [NSObject : AnyObject]!) in var url: NSURL = info["PHImageFileURLKey"] as! NSURL }
`
IOSシュミレータではエラーとならないのですが、実機で確認するとこのようになります。
端末の設定よりパーミッションあたりの設定も見てみたのですが、「写真」が許可となっているので問題ないのかなぁと思ったのですが、、、
以上、宜しくお願いします
回答1件
あなたの回答
tips
プレビュー