Objective c NS\U SWIFT\U名称基本名称验证错误
我的头文件Test.h中有以下代码: 然后,我尝试将此接口导入我的swift源代码,但我得到以下警告:'swift\u name'属性的基名称标识符无效,此函数的swift名称仍处于测试状态。其他名称,如verif或verify1,效果非常好。Objective c NS\U SWIFT\U名称基本名称验证错误,objective-c,swift,swift3,Objective C,Swift,Swift3,我的头文件Test.h中有以下代码: 然后,我尝试将此接口导入我的swift源代码,但我得到以下警告:'swift\u name'属性的基名称标识符无效,此函数的swift名称仍处于测试状态。其他名称,如verif或verify1,效果非常好。 有什么想法吗?验证在中定义为宏: 对于另一个宏\u验证。因此,编译器 将定义预处理为(如您可以使用 产品->执行操作->预处理“Test.m”) 这绝对不是一个有效的Swift名称 使用不同的名称将是最简单的解决方案。否则,#取消定义ing宏 这是一个解
有什么想法吗?
验证在
中定义为宏:
对于另一个宏\u验证。因此,编译器
将定义预处理为(如您可以使用
产品->执行操作->预处理“Test.m”)
这绝对不是一个有效的Swift名称
使用不同的名称将是最简单的解决方案。否则,#取消定义
ing宏
这是一个解决办法:
@interface Test : NSObject
#undef verify
- (void)test NS_SWIFT_NAME(verify());
@end
#import "Test.h"
@implementation Test
- (void)test {
return;
}
@end
#ifndef verify
#define verify(assertion) __Verify(assertion)
#endif
- (void)test __attribute__((swift_name("do { if ( __builtin_expect(!(), 0) ) { DebugAssert('?*?*', 0, \"Third Party Client\" \": \" \"\", 0, 0, \"/PathTo/Test.h\", 22, (void*)0); } } while ( 0 )")));
@interface Test : NSObject
#undef verify
- (void)test NS_SWIFT_NAME(verify());
@end