Я написал код, чтобы найти избранные пользователем из массива настраиваемых объектов. Он работает абсолютно нормально, если этот объект не существует, и в этом случае он просто падает. Я рассматривал возможность полностью переписать код по-другому, но я полагаю, что есть, вероятно, способ исправить это ... Я просто не могу понять, как это сделать.Сбой фильтра объекта, если результатов не найдено
Вот мой код:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("rideCell", forIndexPath: indexPath) as! RideCell
var ride = DataManager.sharedInstance.getRideByName(favouritesArray[indexPath.row] as! String)
if ride != nil {
cell.rideNameLabel.text = ride!.name
var dateFormat = NSDateFormatter()
dateFormat.dateFormat = "h:mm a"
cell.updatedLabel.text = dateFormat.stringFromDate(ride!.updated!)
if ride!.waitTime! == "Closed" {
cell.waitTimeLabel.text = ride!.waitTime!
} else {
cell.waitTimeLabel.text = "\(ride!.waitTime!)m"
}
}
return cell
}
func getRideByName(name: String) -> Ride? {
let result = self.rideArray.filter({
$0.name == name
})
return result[0]
}
Как я уже сказал, он отлично работает, если строки в favouritesArray можно найти, однако он выходит из строя, если нет.
Может ли кто-нибудь предложить, какие изменения я могу сделать, чтобы остановить крушение, и просто получить его, чтобы вернуть нуль?
Спасибо!
'return result.first' будет самым быстрым способом :) – Qbyte