【问题标题】:What does this syntax error mean? [closed]这个语法错误是什么意思? [关闭]
【发布时间】:2010-11-10 01:42:51
【问题描述】:

我遇到了 3 个语法错误:

““}”标记前的语法错误” 我的代码是

IBOutlet UITextView *fruitDescription
}

““{”标记前的语法错误” 我的代码是

- (void)viewDidUnload {

““{”标记前的语法错误” 我的代码是

- (void)dealloc {

有什么想法吗?

【问题讨论】:

  • 显示完整的代码块
  • 您在@Mehrdad 的答案中添加为 cmets 的代码应该添加到问题本身中。您可以编辑您的问题并删除您自己的 cmets。

标签: objective-c iphone xcode syntax-error


【解决方案1】:

后面应该有分号

IBOutlet UITextView *fruitDescription

始终尝试修复您首先看到的第一条错误消息并重新编译。修复第一个错误可以消除后续错误。

【讨论】:

  • 好的,当我添加分号时,我收到一条错误消息,提示““AT_NAME”令牌之前的语法错误”
  • 你真的应该发布完整的源代码。
  • - (void)viewDidUnload { // 释放主视图的所有保留子视图。 // 例如self.myOutlet = nil; } - (void)dealloc { [super dealloc]; @end 这就是其中 2 个错误,第三个是我的视图控制器上的 @end 问题。你好,我大概能猜出第三个
  • @interface FruitViewController : UIViewController { IBOutlet UITextView *fruitDescription; } @property(nonatomic,retain) IBOutlet UITextView *fruitDescription @end 它突出显示了“@end”部分
  • Apple 建议在属性上使用 IBOutlet 并连接到属性,而不是在 ivar 上使用 IBOutlet 并连接到 ivar(当它们同名时,它只是令人困惑,但我相信当它们都是相同的名称时,将优先使用该属性而不是 ivar,而不管哪个具有 IBOutlet)。
【解决方案2】:

在第一种情况下,如果您尝试声明一个变量,我怀疑问题是您缺少分号:

IBOutlet UITextView *fruitDescription;

我不知道代码的第二和第三位是什么意思,所以很难说你应该如何改变它......请发布更多代码,并解释你想要它是什么做。

【讨论】:

  • @Jon: - (void)viewDidUnload 是 Obj-C 中的方法声明。 -/+ 表示实例/静态方法。
  • 我怀疑它可能是作为方法声明的,但是确定 OP 真正想要做什么总是有帮助的 :)
  • 是的,当然。我指出,作为 .NET 人,我们的世界与 Obj-C 人有些不同。从语法上讲,它对我们来说看起来非常神秘和不自然。
【解决方案3】:

后面缺少分号

@property(nonatomic,retain) IBOutlet UITextView *fruitDescription
                                                              ^^^^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多