コード
ユーザーデフォルトに画像を保存しており、その画像を呼び出してボタンのイメージに設定したいのですができていません。 保存するときはNSDataで保存しているため、最初はソースコード①の様に、UIImageにいきなりキャストしていましたが コンパイルエラーになります(エラーメッセージ①)。 そこで、ソースコード②の様に、AnyObjectを介してUIImageにキャストする様にしたところ、コンパイルも正常に終了し、実行もできるのですが、ボタンに画像が表示されません。 どの様にすると、ボタンのイメージに画像を表示できるのでしょうか? 初歩的な質問で申し訳ありませんが、よろしくお願いします。 // 画像をユーザーデフォルトに保存しているソースコード let userDefaults = NSUserDefaults.standardUserDefaults() let nsImage = UIImagePNGRepresentation(image) userDefaults.setObject(nsImage, forKey: "image\(button.tag)") // ソースコード① let userDefaults = NSUserDefaults.standardUserDefaults() let imageNSData = userDefaults.objectForKey("image\(button.tag)") as? NSData button.setImage((menuImageNSData) as? UIImage, forState: .Normal) // ソースコード② let userDefaults = NSUserDefaults.standardUserDefaults() let imageNSData = userDefaults.objectForKey("image\(button.tag)") as? NSData let imageData = imageNSData as? AnyObject button.setImage((imageData) as? UIImage, forState: .Normal) ###発生している問題・エラーメッセージ // エラーメッセージ① Cast from 'NSData?' to unrelated type 'UIImage' always fails
エラーメッセージ
ソースコード②の場合はエラーメッセージはでません。 ###該当のソースコード ```ここに言語を入力 ここにご自身が実行したソースコードを書いてください
###試したこと
imageNSDataにnilが入っているのかどうかを確認するために
let imageNSData = userDefaults.objectForKey("image(button.tag)") as? NSData
if imageNSData == nil{
print("imageNSDataはnilです!")
}
の様にprint文を入れてみましたがnilではありませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
言語はiOS swift(iOSバージョンは9.3、swiftのバージョンは2.3)
ツールはXcode 8.0 beta 4
Mac OS X EL Capitan 10.11.6
で行っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/15 14:09