我使用核心数据将我的图片存储为NSdata
,因此图片将存储在另一个TableViewController
现在,我会尝试将存储为NSData
的图像放入pickerView
var restaurants:Restaurant!
var imageArray = [NSData]()
var dataArray1 = [Int]()
override func viewDidLoad() {
super.viewDidLoad()
imageArray = [restaurants.image!]
for(var i = 0; i < 100; i++) {
dataArray1.append((Int)(arc4random() % 10))
}
resultLabel.text = ""
pickerView.delegate = self
pickerView.dataSource = self
}
@IBAction func buttonClicked(sender: AnyObject) {
pickerView.selectRow(Int(arc4random())%94 + 3, inComponent: 0, animated: true)
}
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {
let pickerImage = UIImageView()
if component == 0 {
_ = imageArray[(Int)(dataArray1[row])]
}
return pickerImage
}
它看起来像下面的视图,但里面的图像应该是我的NSData
文件
http://www.appcoda.com.tw/wp-content/uploads/2015/08/emoji-slotmachine.gif
当我运行它时,它总是关闭。 我认为问题是Array没有从Core Data获得价值? 请真的需要帮助。
答案 0 :(得分:0)
您没有正确地将代表NSData
的{{1}}转换回UIImage
。因此,你每次尝试做的演员都会失败。
总结一下:
要获得UIImage
,您需要在某处使用此行:
UIImage