找不到这个“预期标识符”错误的来源,有什么想法吗?

时间:2014-01-30 01:26:54

标签: objective-c macos

我对Objective-C和编程很新,我在解决我的代码中遇到的一个奇怪错误时遇到了一些困难。我逐行重新检查了我的代码,但无论我做什么,我都会在这一行上出现“预期标识符”错误。

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

我已多次重新输入该线以确保我没有错过任何拼写错误,但是一个小红箭指向第一个右侧括号。

1 个答案:

答案 0 :(得分:3)

从括号中取出[self.cartTotal]。他们在这里没必要。

应该是:

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

为了帮助理解错误(假设您来自Java或C ++之类的语言),您所写的内容相当于用Java编写:

this.cartTotal.

注意最后的悬挂点?这就是你基本上在这里所做的。在Java中,该点表示您在任何对象cartTotal上调用方法,或访问该对象上的公共变量。我不确定Java或C ++错误消息会在这里说什么,但这是等效的方案。


鉴于@ GregParker的出色评论......

您通过cartTotal创建了@property

@property double cartTotal; // or something like this

这创造了三件事:

  • 一个二传手
  • 一个吸气剂
  • 实例变量

以两种方式访问​​setter:

[self setCartTotal:value];

或者:

self.cartTotal = value;

这两者都做同样的事情。

同样可以通过两种方式访问​​getter:

[self cartTotal];

或者:

self.cartTotal;