在更新到 Xcode 8 Beta 6 时,我看到引入了一个新类型:UIActivityType
所以我尝试在我的 UIActivity
自定义类中做这样的事情:
class FooActivity: UIActivity {
func retrieveActivityType() -> String {
return "someStringDescribingActivityType"
}
override open var activityType: UIActivityType? {
@objc(retrieveActivityType)
get {
return UIActivityType(rawValue: "someStringDescribingActivityType")
}
}
}
其中 retrieveActivityType()
是 Objective-C 的等效项,因为 UIActivityType
仅在 Swift 中定义。但到目前为止运气不好,仍然有两个错误:
属性不能是 @objc 覆盖,因为它的类型不能在 Objective-C 中表示
非“@objc”属性的“@objc”getter
有什么明显我遗漏的吗?
最佳答案
通过将返回类型设置为非可选 找到了一个快速修复方法。 我想在 beta 7 发布之前没有真正的解决方法。
class FooActivity: UIActivity {
override open var activityType: UIActivityType {
get {
return UIActivityType(rawValue: "someStringDescribingActivityType")
}
}
来源:
关于objective-c - UIActivityType – 属性不能是@objc 覆盖,因为它的类型不能在 Objective-C 中表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39075442/