2017-07-05 4 views
0

は、ここに私のコードですが、それはときに私がいるので、私はそれが動作しないことを理解チェックマークが上にある場合 - 配列にオブジェクトを追加[SWIFTは]

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    // тут проверяем если ячейка уже выбрана то удаляем из массива и убираем чекмарк 
    // если не выбрана то добавляем в массив и ставим чекмарк 
    if tableView.cellForRow(at: indexPath)?.accessoryType == .checkmark { 
     let cell = UITableViewCell() 
     usersInGame.add(cell.textLabel?.text) 
    } else { 

     tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark 
    } 
    tableView.deselectRow(at: indexPath, animated: false) //убираем выделение ячейки если не нужно обратное 
    let usersInGame: NSMutableArray = [] 
} 

配列にユーザー名を保存しません。チェックマークコードをオンにしても機能しません。助けてください!

+0

最後の行の削除usersInGame:NSMutableArray = [] 'これは再び空の配列を作成するためです –

+0

正しい配列ですか?var array = [] as Array>? – DanTheMan

答えて

1

新しいセルを作成していて、そのテキストを取得しようとしているように見えます。代わりにこれを試してみてください@Samarth Kejriwal

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if let cell = tableView.cellForRow(at: indexPath), cell.accessoryType == .checkmark { 
     usersInGame.add(cell.textLabel?.text) 
    } else { 
     tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark 
    } 
    tableView.deselectRow(at: indexPath, animated: false) 
} 

で指摘したようにまた、ローカルusersInGameは必要ありません。また、usersInGameに入るようにブレークポイントを設定します。いくつかの構文エラーがあるかもしれませんが、私はXCodeなしのノートパソコンで作業しています。

関連する問題