В представлении коллекции у меня есть массив событий, и каждая ячейка имеет фоновое изображение изображения события, которое сохраняется как PFFile. Это работает отлично и хорошо, пока я не добавил этот код. Пользователь имеет свойство «profilePicture», которое я хочу отобразить в ячейке. Вот мой код, который находится внутри блока, который получает изображение события.Grabbing object от пользователя в parse
let eventCreator : PFUser = event?.objectForKey("user") as! PFUser
let creatorImage : PFFile = eventCreator.objectForKey("profilePicture") as! PFFile
creatorImage.getDataInBackgroundWithBlock({ (data, error) -> Void in
cell.creatorImageView.image = UIImage(data: data!)
})
Вот полный метод, который получает событие, и все его свойства (например, которые я сказал, работал прекрасно, прежде чем я добавил код выше Теперь он бросает «Фатальная ошибка:. Неожиданно обнаружили ноль, а разворачивание Дополнительное значение»ошибка. Любая помощь?
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
//sets up cell
let cell : EventCell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! EventCell
//adds attend action
cell.attendButton.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside)
//queries parse for events
let event = events?[indexPath.row]
event?.eventImage.getDataInBackgroundWithBlock({ (data, error) -> Void in
if let data = data, image = UIImage(data: data) {
if cell.isFlipped == false {
cell.eventBackgroundImage.image = image
cell.eventTitleLabel.text = event?.eventTitle
//gets profile picture of events creator
let eventCreator : PFUser = event?.objectForKey("user") as! PFUser
let creatorImage : PFFile = eventCreator.objectForKey("profilePicture") as! PFFile
creatorImage.getDataInBackgroundWithBlock({ (data, error) -> Void in
cell.creatorImageView.image = UIImage(data: data!)
})
//sets correct category for cell image
if event?.category == "" {
cell.categoryImageView.image = nil
}
if event?.category == "The Arts" {
cell.categoryImageView.image = UIImage(named: "University")
}
if event?.category == "The Outdoors" {
cell.categoryImageView.image = UIImage(named: "Landscape")
}
//TODO finish categories
}
else if cell.isFlipped == true {
cell.eventDescriptionLabel.text = event?.eventDescription
}
}
})
Да, что бы больше смысла, но он выдает ошибку, когда я ставлю, как? и говорит мне изменить его назад. – Echizzle
Конечно, он будет жаловаться. Вам нужно переписать thoses две строки с 'if let' вместо этого. –
Я понял, но не уверен в заказе или синтаксисе. Очевидно, что «если» перед let не работает само по себе, вы могли бы показать мне пример кода, о котором вы думали? – Echizzle