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

Undefine a duplicate interface in Objective-C

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

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

这两个headers可以同时导入,导致接口定义重复。

我试过的

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

但这给了我“: NSObject

上的预期标识符错误

我认为您不能在界面上使用 #ifndef。也许您可以只在另一个中导入一个 header?

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

@class Test_Sandwich;

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

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

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