Próbuję usunąć wiersz z mojego źródła danych i następujący wiersz kodu:
if let tv = tableView {
powoduje następujący błąd:
Inicjator dla powiązania warunkowego musi mieć typ opcjonalny, a nie 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)
Jak mam poprawić poniższe?
if let tv = tableView {
variable with getter/setter cannot have an initial value
który został rozwiązany po prostu przez usunięcie pozostałego bloku {} po inicjalizacji, ala ta odpowiedź: stackoverflow.com/a/36002958/4544328
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 tegoif let
i po prostu użyjtableView
w funkcji