2013-02-15 170 views
0

對於什麼都原因,我的Xcode已經決定它不喜歡我......我得到的標題所述的錯誤在這條線解析問題:預期表達式(目標C)

- (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作爲一種可能性:(

incase它的需要我已經把.m和.h在pastebin保存在屏幕上的一些空間...僅供參考我正在關注Mac OSX第四版Coca編程第四版第6.10版

回答

4

在你行

if (row == –1) 

減號是不是真正的減號,而是一個 「EN DASH」(Unicode的U + 2013 )。也許你在輸入代碼時意外按下了選項鍵和減號鍵。

用減號替換該字符可修復問題。

+0

我已經在我的生活中輸入了一百萬條if語句..所以當本書說要輸入這個內容時,我可能會也可能不會從pdf中得到coppy/pated,因爲我得到了一個令人厭倦的基本流程 - atleast我現在知道那個錯誤是什麼意思..謝謝 – 2013-02-15 07:25:50

+0

@MichaelCrook:是的,從PDF複製/粘貼是一個潛在的問題,也許代碼是由設計師排版:-)。有時你會看到字符串的排版引號「...」。 – 2013-02-15 07:59:41

0

UITableView沒有名爲selectedRow的方法。

也許你應該使用:

- (NSIndexPath *)indexPathForSelectedRow 
+2

這是Mac OS X,不是iOS。 'NSTableView' * does *有這樣的方法。 – 2013-02-15 05:21:05