В зависимости от моего понимания оператора guard
в swift я делаю следующее:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let identifier = "identifier"
let dequeCell = tableView.dequeueReusableCellWithIdentifier(identifier)
guard let cell = dequeCell else
{
// The following line gives error saying: Variable declared in 'guard'condition is not usable in its body
cell = UITableViewCell(style: .Default, reuseIdentifier: identifier)
}
cell.textLabel?.text = "\(indexPath.row)"
return cell
}
Я просто хочу понять, можем ли мы создать переменную в операторе guard
и получить к ней доступ в остальной части функции? или операторы защиты предназначены для немедленного возврата или выдачи исключений?
Или я совершенно неправильно понимаю использование оператора guard
?
guard
должен вызывать возврат или выброс метода, если он ложный. - person trojanfoe   schedule 30.03.2016dequeue...
(тот, который ожидает индексный путь в качестве второго аргумента): он выделит для вас ячейку, если ни одна не будет доступна в пуле повторного использования, и никогда не вернетnil
. Затем принудительно введите в свой пользовательский подкласс ячейки (это никогда не должно давать сбоев, если вы правильно зарегистрировали класс/идентификатор). - person Nicolas Miari   schedule 30.03.2016