So I have started creating a UITableView with multiple prototype cells. I currently have the below code setup, which works finefunc tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {    var cell: UITableViewCell?    if indexPath.row == tableView.numberOfRowsInSection(0) - 1 {        cell = tableView.dequeueReusableCellWithIdentifier(AddSetCell)    } else {        cell = tableView.dequeueReusableCellWithIdentifier(SetCell) as! SetTableViewCell    }    return cell!}I have learned to avoid using ! as much as possible when dealing with optionals. However, I also don't like creating an if let statement a thousand times. In theory, cell should never be nil because my code only allows cell to be one of the identifiers above. However it still makes me nervous in terms of bad practice. If I do var cell = UITableViewCell, I have to unwrap both of the calls to dequeueReusableCellWithIdentifier or XCode gets mad at me. Which is the best approach for this case?
Proper cellForRowAtIndexPath cell return in Swift
swift;uikit