2016-04-07 10 views
0

の方法で提供する「」オプションの要件メソッドとの競合「」私は、次のコード func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) -> [Int]を持っていると私は、そのメソッドからIntの配列を返すようにしたいが、私はこのエラーを取得していますのObjective-Cメソッド「:」プロトコル

Objective-Cのメソッド 'のtableView:didDeselectRowAtIndexPath:' メソッドによって提供 'のtableView(:didDeselectRowAtIndexPath :)' オプション要求メソッド 'のtableView(:didDeselectRowAtIndexPath :)' との競合プロトコルにおける 'UITableViewDelegate'

私は感嘆符はIntのように-> [Int]!ですが、エラーを修正しませんでした。私はここで間違って何をしていますか?ありがとう。

答えて

0

あなたのクラスはUITableViewDelegateを実装しているようです。インターフェイスUITableViewDelegateには、tableView:didDeselectRowAtIndexPath:の戻り値がありません。メソッドで戻り値の型が定義されているため、競合が発生しています。

戻り値を削除すると、あなたのケース[Int]の場合でも正しく動作するはずです。 同じシグネチャではなく、異なる戻り値を持つ複数のメソッドを定義することはできません。シグネチャ(メソッド名+パラメータ)は一意である必要があるため、同じ名前と異なるパラメータを持つメソッドを定義できますが、同じ名前/パラメータと異なる戻り型のメソッドは定義できません。

+0

ご返信ありがとうございます。その後、私は行を選択解除した後、何かを返すでしょうか?これが愚かな質問であれば申し訳ありませんが、私はSwiftとiOSの開発には初めてです。 – user3395936

+0

できません。なぜ何かを返そうとしているのですか?たとえば、別のメソッドを呼び出して、いくつかのパラメータを渡して、それらを使ってsthを実行できます。誰が戻り値を受け取るべきですか? tableView:didDeselectRowAtIndexPath:UITableViewによって呼び出されるため、戻り値は取得されません。 – creativ

+0

私の問題はかなり複雑です。基本的にそのメソッドでは、ファイルを保存先に保存しています。そのファイルから読み込み、そのメソッドのint配列を返すことができるようにしたいと考えています。 – user3395936

関連する問題