UICollectionView 和解析图像(Swift)没有错误但崩溃
Posted
技术标签:
【中文标题】UICollectionView 和解析图像(Swift)没有错误但崩溃【英文标题】:UICollectionView and Parse Images ( Swift ) No Error but Crash 【发布时间】:2015-07-18 19:13:50 【问题描述】:程序启动并显示来自解析的图像,没有错误,当我再次运行它时它崩溃了。我的问题是是否是因为图像未缩放到自定义单元格的正确大小。
这里是错误:项目宽度必须小于 UICollectionView 的宽度减去部分插入左右值。 致命错误:数组索引超出范围
这是我的功能:
// 获取品牌 func getBrand ()
// Create PFQuery
var query:PFQuery = PFQuery(className: "BrandInfo")
// Call findobjects
query.findObjectsInBackgroundWithBlock
(objects:[AnyObject]?, error: NSError?) -> Void in
// refresh array
self.brands = [String]()
self.pics = [UIImage]()
// loop through array
for brandObject in objects!
// get PFObjects
let brandName:String? = (brandObject as! PFObject)["Name"] as? String
if brandName != nil
self.brands.append(brandName!)
let brandPicture = brandObject["Image"] as! PFFile
brandPicture.getDataInBackgroundWithBlock( (imageData:NSData?, error:NSError?) -> Void in
if(error == nil)
let brandImage = UIImage(data: imageData!)
self.pics.append(brandImage)
println(self.pics.count)
)
// Refresh CollectionView
self.collectionView.reloadData()
// Setting up collection view
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return self.brands.count
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
let cell:collectionViewCell = self.collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! collectionViewCell
// Get elements
let picToDisplay:UIImage? = pics[indexPath.row] // here is where the warning occurs
let dataToDisplay:String = brands[indexPath.row]
let imageView:UIImageView? = cell.viewWithTag(2) as? UIImageView
// Set labels
cell.brandImage.image = picToDisplay
cell.brandLabel.text = dataToDisplay
return cell
【问题讨论】:
【参考方案1】:检查品牌和图片数组的计数是否相同。
在您的情况下,仅当您同时使用brandImage 和 BrandName 时才应附加数组。这样您的图片和品牌数组计数将相同。
【讨论】:
是的,它的计数相同,它显示了一次图像,然后当我再次运行它时,它在这条线上崩溃让 picToDisplay:UIImage? = pics[indexPath.row]以上是关于UICollectionView 和解析图像(Swift)没有错误但崩溃的主要内容,如果未能解决你的问题,请参考以下文章