2014-01-30 17 views
0

我對Objective-C和一般編程非常陌生,我在解決我在代碼中遇到的奇怪錯誤時遇到了一些困難。我已經逐行重新檢查了我的代碼,但無論我做什麼,我都會在這一行上得到「預期標識符」錯誤。無法找到此「預期標識符」錯誤的來源,有什麼想法?

NSString *text = [NSString stringWithFormat:@"Your total is $%.2f", [self.cartTotal]]; 

我重新輸入行幾次,以確保我沒有錯過任何錯別字,而是一個小紅箭頭指向第一個右括號。

回答

3

從括號中取[self.cartTotal]。他們在這裏不必要。

應該是:

NSString *text = [NSString stringWithFormat:@"Your total is $%.2f", self.cartTotal]; 

爲了幫助理解錯誤(假設你從如Java或C++語言來),你寫的是相當於在寫這篇發言權Java:

this.cartTotal. 

注意到掛在最後的點?這就是你在這裏基本完成的。在Java中,該點表明您在任何對象cartTotal上調用方法,或訪問該對象上的公共變量。我不確定Java或C++錯誤消息在這裏會說什麼,但這是等效的情況。


鑑於@ GregParker的優秀評論...

您可以通過一個@property的方式創建cartTotal

這將創建三件事情:

  • setter是
  • 吸氣
  • 一個實例變量

設置器通過兩種方式獲得:

[self setCartTotal:value]; 

或者:

self.cartTotal = value; 

這些都做同樣的事情。

吸氣兩種方式同樣訪問:

[self cartTotal]; 

或者:

self.cartTotal; 
+1

'self.cartTotal'或'[自cartTotal]'。不是都。 –

+0

感謝您的評論格雷格。我添加了一些Objective-C初學者的答案。 – nhgrif