2015-05-20 36 views
0

我正在學習iOS編程(我來自Android),我正在尋找讓Strings更簡單。有了這個提議我定義了一個宏和一些代碼片段使用它:iOS inline if else compile error:「Expected:」; 「期望的表達式」

#define STRING_BASE @"InfoPlist" 
#define getString(string) NSLocalizedStringFromTable(string, STRING_BASE, @""); 

... 

BOOL isSomething = YES; //or NO 
_label.text = isSomething? @"YES" : @"NO"; 
_label.text = isSomething? @"YES" : getString(@"login_title"); 
_label.text = isSomething? getString(@"login_title") : @"NO"; 

我不知道發生了什麼,當我有這樣兩行的一切OK,和它的作品。

_label.text = isSomething? @"YES" : @"NO"; 
_label.text = isSomething? @"YES" : getString(@"login_title"); 

但是當我使用最後一個我有說,一個編譯器錯誤「預期」和「預期的表達」。

_label.text = isSomething? getString(@"login_title") : @"NO"; 

如果讓我選擇「修復」的代碼替換這一點(並繼續編譯器錯誤,當然):

self.loginTitleLabel.text = isSomething? :) : @"NO"; 

有一些事情是我做錯了什麼?

在此先感謝。

+0

rckoenes是正確的,刪除​​ 「;」表格宏 –

回答

3

你的定義中加入的一個;只是刪除從;的定義:

#define getString(string) NSLocalizedStringFromTable(string, STRING_BASE, @"") 
+0

很好的觀察+1對你 –

+0

它的工作原理,我已經瘋了!謝謝! – vgc