2017-11-21 5 views
1

私はこのチュートリアルを使用して段階的に起こって、UISearchControllerを実装する:スウィフトは - オーバーライドテーブルビュー機能は - 方法から任意のメソッドをオーバーライドしない、そのスーパー

Search for places using MKLocalSearchRequest and display results with UISearchController

、このセクションで

...

Search for locations using MKLocalSearchRequest

...私はテーブルビューのデータソース

をアップ3.SETステップに問題があります

Error:Method does not override any method from its superclass

私は、cellForRowAtindexPathのtableView関数からoverrideを削除しようとしている。この場合、私はXcodeでエラーを持っていませんが、実行した後にエラーがあります。

Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'UITableView (<UITableView: 0x7ff8e03a3800; frame = (0 0; 375 667); clipsToBounds = YES; autoresize = W+H; 
gestureRecognizers = <NSArray: 0x604002046450>; layer = <CALayer: 0x604001626620>; 
contentOffset: {0, -56}; contentSize: {375, 132};adjustedContentInset: {56, 0, 0, 0}>) 
failed to obtain a cell from its dataSource(<CityWeather.LocationSearchTable: 0x7ff8de696e60>)' 

エラーメッセージが叫ぶ:failed to obtain a cell from its dataSource(<CityWeather.LocationSearchTable: 0x7ff8de696e60>)

私が間違っていることを教えてください。そして、私はこの問題をどのように処理できますか?ありがとう。

+0

XcodeまたはSwiftのバージョンについて記述してください。 –

+2

あなた自身を助けることができます、それは非常に簡単です。メソッド全体をコメントアウトし、いくつかの文字を再入力してコード補完を使用します。あなたがたどったチュートリアルは、スウィフト2 – vadian

+2

のコピーペーストと書き込みが少なくなる可能性が最も高いです! –

答えて

5

tutorialUITableviewDatasource方法(多分スウィフト2.2)用の古い構文を使用している:

あなたは今、これらを必要とする:可能な限り

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

} 
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

} 

は常にXCodeののコード補完を使用します。

+0

ありがとうございます。それは私を助けた! – Rurom

1

プネーネ・シャルマ氏は、メソッドをオーバーライドする必要はないと述べています。 UIViewControllerUITableViewDatasource(およびUITableViewDelegate)を使用しているためです。

ViewControllertableViewの代理人を設定する必要があります。

関連する問題