我正试图从网页内容中设置图片时撞到墙上。
图像位于UICollectionViewCell
的子类中。我通过将UIImage
视图拖动到单元控制器来为它创建了一个插座。在我的收藏控制器中,我试图将图像设置为像thi:
if let url = NSURL(string: "https://yourfightsite-vod.s3-eu-west-1.amazonaws.com/posters/543e80b7aec51.jpg") {
if let data = NSData(contentsOfURL: url) {
if let image = UIImage(data: data) {
cell.posterImage.image = image
} else {
println("Did not get image")
}
} else {
println("Did not get NSData")
}
} else {
println("Did not get NSURL")
}
所有if let
行的原因是因为某处它给了我以下错误消息:
致命错误:在解包可选值时意外发现nil
但是不能为我的生活找到哪里。如果我打印image
常数的值,我得到一个Optional
,我猜是指向内存中该图像的指针:
<UIImage: 0x788990d0>, {1754, 2480}
两个数值似乎也分别映射到外部图像的宽度和高度(以像素为单位)。
那是怎么回事?为什么我不能在收集单元格视图中设置血腥图像?!
编辑:整个方法:
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! VODTitleCollectionViewCell
cell.backgroundColor = UIColor.darkGrayColor()
cell.onDemandTitle = results[indexPath.row]
if let url = NSURL(string: "https://yourfightsite-vod.s3-eu-west-1.amazonaws.com/posters/543e80b7aec51.jpg") {
if let data = NSData(contentsOfURL: url) {
if let image = UIImage(data: data) {
print(image)
print(cell.posterImage)
cell.posterImage?.image = image
} else {
println("Did not get image")
}
} else {
println("Did not get NSData")
}
} else {
println("Did not get NSURL")
}
return cell
}