之间的区别是什么:
@objc class MyClass: NSObject{}
和
@objc(MyClass)
class MyClass: NSObject{}
答案 0 :(得分:3)
在Swift 2中不推荐使用@objc
修饰符。所有标记为@objc
的类都必须是NSObject
的子类,从而使修饰符@objc
成为冗余
@objc(xxx)
用于定义类的替代名称(由运行时和Objective-C代码使用)。
此修饰符仅在您希望在运行时/目标C代码中使用其他名称时才有用。
默认情况下,运行时名称与声明的名称相同,以模块名称和点为前缀。例如,class X: NSObject {}
在运行时将为@objc(MyModule.X)
。
答案 1 :(得分:0)
您可以将它放在单独的一行上。这完全取决于你。
如果使用@objc(SomeOtherName)
,它告诉编译器使用名称SomeOtherName
而不是Swift类名(可能没有Objective-C等价物)从Objective-C代码访问类)。