0

なんらかの理由で、私のxcodeが私を気に入らないと判断しました...この行のタイトルに記載されているエラーが表示されます

- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
    NSInteger row = [_tableView selectedRow];
    if (row == –1) //<---- this line
    {
        return;
    }
    NSString *selectedVoice = [_voices objectAtIndex:row];
    [_speechSynth setVoice:selectedVoice];
    NSLog(@"new voice = %@", selectedVoice);
}

_tableView が混乱していることと関係があると私は信じています。なぜなら、IDE に入力を手伝わせようとしたときです (使用可能な関数の API ルックアップを行うことで、単語を完成させるために何を推測するかがわかります)。 selectedRow は可能性として表示されません:(

必要に応じて、.m と .h をペーストビンに入れて、画面のスペースを節約しました... 参考までに、Coca Programming for Mac OSX の第 4 版の章 6.10 に従っています。

4

2 に答える 2

4

あなたのラインで

if (row == –1)

マイナス記号は実際のマイナス記号ではなく、「ENDASH」(Unicode U + 2013)です。そのコードを入力するときに、誤ってオプションキーとマイナスキーを一緒に押した可能性があります。

その文字をマイナス記号に置き換えると、問題が修正されます。

于 2013-02-15T07:07:18.987 に答える
0

UITableView には selectedRow というメソッドがありません。

おそらく、次を使用する必要があります。

- (NSIndexPath *)indexPathForSelectedRow
于 2013-02-15T05:20:05.617 に答える