gpt4 book ai didi

objective-c - NS_SWIFT_NAME 基本名称验证错误

转载 作者:可可西里 更新时间:2023-11-01 00:58:14 25 4
gpt4 key购买 nike

我的头文件 Test.h 中有以下代码:

#import <Foundation/Foundation.h>

@interface Test : NSObject

- (void)test NS_SWIFT_NAME(verify());

@end

这是我的实现文件:

#import "Test.h"

@implementation Test

- (void)test {
return;
}

@end

然后我尝试将此接口(interface)导入我的 swift 源代码,但我收到以下警告:'swift_name' 属性具有无效的基本名称标识符 并且此函数的 swift 名称仍然是 测试。其他名称如 verifverify1 效果很好。有什么想法吗?

最佳答案

verify<usr/include/AssertMacros.h> 中定义为宏:

#ifndef verify
#define verify(assertion) __Verify(assertion)
#endif

用另一个宏来说__Verify .结果,编译器将定义预处理为(您可以使用产品 -> 执行操作 -> 预处理“Test.m”)

- (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 )")));

这绝对不是一个有效的 Swift 名称。

使用不同的名称是最简单的解决方案。否则#undef调用宏是一种解决方法:

@interface Test : NSObject

#undef verify
- (void)test NS_SWIFT_NAME(verify());

@end

关于objective-c - NS_SWIFT_NAME 基本名称验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40111117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com