在更新到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中定义。但到目前为止还没有运气,仍有两个错误:
Property cannot be an @objc override because its type cannot be represented in Objective-C
'@objc' getter for non-'@objc' property
有什么明显的东西我不见了吗?
答案 0 :(得分:1)
只需将返回类型设为非可选即可找到快速解决方法。 我想在beta 7发布之前没有真正的解决方法。
class FooActivity: UIActivity {
override open var activityType: UIActivityType {
get {
return UIActivityType(rawValue: "someStringDescribingActivityType")
}
}
来源: