Swift 5 方法不能标记为@objc 因为参数2的类型不能在Objective-C中表示
Swift 5 Method cannot be marked @objc because the type of the parameter 2 cannot be represented in Objective-C
我在这段代码的第一行收到以下错误:
Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C
@objc static func makeShareLink( _ type: String, id: Int? = nil) -> String {
}
这个class声明是
@objc class Util: NSObject {
}
您不能表示公开给 Objective C 的可选 Int
。
这会起作用:
@objc static func makeShareLink( _ type: String, id: Int) -> String {
...
}
如果你想使用一个可以暴露给Objective-C的可选号码,这将起作用:
@objc static func makeShareLink( _ type: String, id: NSNumber? = nil) -> String {
...
}
之所以有效,是因为 NSNumber
是一个 对象 ,可以是 nil
,但 Int
不表示为Objective C 中的对象,但作为 值 .
我在这段代码的第一行收到以下错误:
Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C
@objc static func makeShareLink( _ type: String, id: Int? = nil) -> String {
}
这个class声明是
@objc class Util: NSObject {
}
您不能表示公开给 Objective C 的可选 Int
。
这会起作用:
@objc static func makeShareLink( _ type: String, id: Int) -> String {
...
}
如果你想使用一个可以暴露给Objective-C的可选号码,这将起作用:
@objc static func makeShareLink( _ type: String, id: NSNumber? = nil) -> String {
...
}
之所以有效,是因为 NSNumber
是一个 对象 ,可以是 nil
,但 Int
不表示为Objective C 中的对象,但作为 值 .