###前提・実現したいこと
IOSアプリ開発入門者です。アプリで処理した画像データをアプリ終了時に保存したいのですがその方法がよくわからないのでまずは、UserDefaultsに保存することにしました。Swift2では動作していましたがSwift3に書き直したところエラーが出てしまいます。原因・解決策をご教授していただければありがたいです。
###発生している問題・エラーメッセージ
エラーメッセージ
Cannot convert value of type ’Data’ to closure result type ’NSData’`
###該当のソースコード
// — swift2の場合 —
/* メモ内容をUserDwfaultに保存する */
func saveImage3(pn:Int,imgs:[UIImage]){
let photos = imgs
let photoData: NSUserDefaults = NSUserDefaults.standardUserDefaults()
// [UIImage] → [NSData]
let dataImages: [NSData] = photos.map { (image) -> NSData in
UIImagePNGRepresentation(image)!
}
let photosName:String = "photos" + String(pn)//保存名を決定
photoData.setObject(dataImages, forKey: photosName)
}
// — swift3の場合 —
func saveImage3(pn:Int,imgs:[UIImage]){
let photos = imgs
let photoData: UserDefaults = UserDefaults.standard
// [UIImage] → [NSData]
let dataImages: [NSData] = photos.map { (image) -> NSData in
UIImagePNGRepresentation(image)!
}
//
let photosName:String = "photos" + String(pn)//保存名を決定
photoData.set(dataImages, forKey: photosName)
}
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
Xcodeは8を使用しています。
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/29 10:34