Objective c @类名上的objc注释与类本身

Objective c @类名上的objc注释与类本身,objective-c,swift,react-native,objective-c-swift-bridge,Objective C,Swift,React Native,Objective C Swift Bridge,假设我有一个名为ExampleClass的类 假设我这样写代码: @objc class示例类:NSObject{} 使用如下所示的Objective文件头: #import <Foundation/Foundation.h> #import <React/RCTBridgeModule.h> @interface RCT_EXTERN_MODULE(ExampleClass, NSObject) @end 仅更改swift,使其显示: @objc(ExampleCl

假设我有一个名为
ExampleClass
的类

假设我这样写代码:

@objc class示例类:NSObject{}

使用如下所示的Objective文件头:

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>

@interface RCT_EXTERN_MODULE(ExampleClass, NSObject)
@end
仅更改swift,使其显示:

@objc(ExampleClass)
class ExampleClass: NSObject {}

结果汇编成功。这两种语法的区别是什么?为什么后者工作而前者不工作?

@objc
属性的参数指定Swift将导出到目标C的名称

在Objective-C中配置Swift接口 在某些情况下,您需要对Swift API如何向Objective-C公开进行更细粒度的控制。您可以使用
@objc(name)
属性 更改类、属性、方法、枚举类型或 接口中的枚举案例声明,因为它暴露于 目标C代码

例如,如果Swift类的名称包含Objective-C不支持的字符,则可以提供另一个选项 要在Objective-C中使用的名称。如果为 Swift函数,使用Objective-C选择器语法。记住添加一个 冒号(
),参数位于选择器项之后的任何位置


中,我认为
@objc(ExampleClass)
将类名定义为
ExampleClass
,而不是wift将产生的名称(例如
\u objc\u class\u$\u ExampleClass
)谢谢!如果你写下来作为答案,我会更新/接受!
@objc(ExampleClass)
class ExampleClass: NSObject {}