将存储为NSdata的图像放入pickerView时发生错误

时间:2016-02-27 06:01:06

标签: ios swift uipickerview nsdata

我使用核心数据将我的图片存储为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获得价值? 请真的需要帮助。

1 个答案:

答案 0 :(得分:0)

您没有正确地将代表NSData的{​​{1}}转换回UIImage。因此,你每次尝试做的演员都会失败。

结帐this question

总结一下: 要获得UIImage,您需要在某处使用此行:

UIImage