próbuję usunąć wiersz z mojego źródła danych i następujący wiersz kodu:Warunkowe Oprawa: czy pozwolić błąd - Initializer dla warunkowego wiązania musi mieć typ opcjonalny
if let tv = tableView {
powoduje następujący błąd:
Initializer for conditional binding must have Optional type, not UITableView
Oto pełny kod:
// Override to support editing the table view.
func tableView(tableView: UITableView, commitEditingStyle editingStyle:UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// Delete the row from the data source
if let tv = tableView {
myData.removeAtIndex(indexPath.row)
tv.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
jaki sposób należy skorygować fol lowing?
if let tv = tableView {
ponieważ 'tableView' nie jest wartością opcjonalną, nie ma potrzeby sprawdzania, czy jest zerowa czy nie. Więc możesz go bezpośrednio użyć, mam na myśli usunięcie, że 'if let' i po prostu użyj' tableView' w funkcji –
Cześć, Manny dzięki za twoją odpowiedź. –
Dla potomności, po rozwiązaniu tego problemu, natknąłem się na 'zmienna z programem getter/setter, która nie może mieć wartości początkowej', która została rozwiązana po prostu usunięciu resztkowego {} bloku po inicjalizacji, ala ta odpowiedź: http: // stackoverflow .com/a/36002958/4544328 –