在 Objective-C 中取消定义重复的接口

问题描述

有什么方法可以取消定义以前定义的接口吗?或者有什么方法可以检查接口是否已经定义。

由于某些无法解释的原因,我需要在两个具有完全相同名称和定义的不同文件中定义完全相同的接口。

可以同时导入这两个标头,从而导致重复的接口定义。

我的尝试

#ifndef Test_Sandwich
#define Test_Sandwich
NS_SWIFT_NAME(Test.Sandwich)
@interface Test_Sandwich : NSObject
@end
#endif

但这给了我“: NSObject”上的预期标识符错误

解决方法

我认为您不能在接口上使用 #ifndef。也许你可以只在另一个中导入一个标题?

或者您可能需要使用前向声明。因此,您可以在其中一个文件中写入:

@class Test_Sandwich;

这对于解决循环依赖很有用。

,

错误是因为我将标识符命名为与接口相同的名称 这有效

#ifndef Test_Sandwich2
#define Test_Sandwich2
NS_SWIFT_NAME(Test.Sandwich)
@interface Test_Sandwich : NSObject
@end
#endif

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...