首页 > 解决方案 > 有多少种情况会导致 Objective-C 中的错误“Expected identifier or '('”?

问题描述

我是一个新学习者,我很困惑每个文件中都没有错误,而是在 main.m 中发生在函数“main”之前

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

标签: objective-c

解决方案


有多少种情况会导致Objective-C中出现“Expected identifier or '('”错误?</p>

很多。_

这通常表明您犯了语法错误,即您错过了输入的内容。一些例子:

  • 您错过了结束)}
  • 错过 a;或输入 a,而不是 a;
  • 错过了闭幕式"
  • 等等等等

错误消息应该提供开始搜索的位置——由于编程语言语法和编译器的性质,简单的输入错误可能要到其实际位置之后的某个时间点才会被发现,因此您从报告行开始并向后工作。为我的 Xcode(以及当今大多数代码编辑器)提供的自动语法着色将有助于定位问题;并且始终使用适当的缩进也有助于视觉。

您还必须重新处理您拥有的任何文件#include#import,尽管您应该能够跳过系统文件 - 如果系统包含报告错误,那么它通常在包含该文件之前在您的代码中。

如果您正在查看大量代码,则二进制搜索会有所帮助:如果您的注释主要是行注释// ...,那么您可以使用块注释/* ... */来临时包围您的代码块,以查看错误是否消失,如果确实如此它在注释掉的部分,如果不是,它是未注释的部分。如果您首先注释掉大约一半的代码以确定错误所在的一半,然后注释掉该块的一半,等等,您可以快速缩小已完成的位置。

键入时注意语法着色并始终在键入时缩进代码,您很快就会掌握发现语法错误。语义,即您键入的内容的含义逻辑可能更具挑战性;正是这些领域的错误将人们带到 Stack Overflow - <em>语法错误通常需要你自己弄清楚,除了可能真的很粗糙的错误!

高温高压


推荐阅读