2017-10-08 7 views
0

に引数としてIビューコントローラからtextFieldShouldReturn手動cellForRowAtindexPathを呼び出しています、そしてcellForRowAtindexPathの引数は、tableViewOutletindexPath(この例では「インデックス」)は、テーブルビューの出口を通過します。ここではcellForRowAtindexPathtableViewOutletは別のビューコントローラからのものですが、インスタンスを使用してそれらを呼び出しています。cellForRowAtindexPath

のようなエラーを示すそれを呼び出すcellForRowAtindexPath回:あなたがここに呼んでいる何

unexpectedly found nil while unwrapping an optional value.

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    if(textField == carRating){ 
     let rating = Float(textField.text!) 
     secondInstanceForMyData.masterCarData[index.row].carRating = rating 
     let _: MyTableViewCell = myViewControllerInstance.tableView(myViewControllerInstance.tableViewWillLoad as UITableView, cellForRowAt: index) as! MyTableViewCell 
    } 
    return true 
} 
+1

「[致命的なエラー:予期せぬことにオプション値のアンラッピング中に予期せぬエラーが検出されました」とはどういう意味ですか?](https://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly-found- – the4kman

+0

フェッチ中の変数にデータがないことを意味する – Harsha

+0

'let _:MyTableViewCell = ...'で始まる行のポイントは何ですか? – rmaddy

答えて

0

はあなたから呼び出されることはありませんテーブルビューのデータソース方式tableView(tableView:cellForRowAt:)、である、それがで実装する必要があります君は。このように考えると、このメソッドはテーブルビューのセルを提供する必要がありますが、それを要求しません。

することは、すでに人口テーブルビューからセルを取得したい場合は、cellForRow(at:)

let indexPath = IndexPath(row: 0, section: 0) 
if let cell = tableView?.cellForRow(at: indexPath) as? MyTableViewCell { 
    // do something with the cell 
} 

テーブルビューメソッドを呼び出すと、あなたのテーブルビューを更新したい場合、あなたはあなたのデータソースのいずれかのコールreloadData()を更新する必要がありますあなたのテーブルビューまたは更新メソッドの1つを呼び出します。

関連する問題