从原始 class 中访问 swift class 扩展方法
Accessing swift class extension methods from within original class
下面的代码不能为我编译:
import Foundation
@objc public protocol MyProtocol {
func protocolMethod(parameter: (String)) -> String
func anotherProtocolMethod() -> Int
}
class MyClass: NSObject {
var myValue = self.anotherProtocolMethod()
}
extension MyClass: MyProtocol {
func protocolMethod(parameter: (String)) -> String {
return ""
}
func anotherProtocolMethod() -> Int {
return 1
}
}
错误发生在分配 myValue 的行上,它显示为:
错误:'NSObject -> () ->MyClass 类型的值没有成员 anotherProtocolMethod
有没有办法在不将 myValue 移动到 class 扩展中的情况下完成这项工作?
这与扩展名无关。这行在任何情况下都是非法的:
var myValue = self.anotherProtocolMethod() // an instance property
存储的实例属性不能通过调用实例方法直接初始化,因为在初始化时实例正是还不存在的东西。
下面的代码不能为我编译:
import Foundation
@objc public protocol MyProtocol {
func protocolMethod(parameter: (String)) -> String
func anotherProtocolMethod() -> Int
}
class MyClass: NSObject {
var myValue = self.anotherProtocolMethod()
}
extension MyClass: MyProtocol {
func protocolMethod(parameter: (String)) -> String {
return ""
}
func anotherProtocolMethod() -> Int {
return 1
}
}
错误发生在分配 myValue 的行上,它显示为: 错误:'NSObject -> () ->MyClass 类型的值没有成员 anotherProtocolMethod
有没有办法在不将 myValue 移动到 class 扩展中的情况下完成这项工作?
这与扩展名无关。这行在任何情况下都是非法的:
var myValue = self.anotherProtocolMethod() // an instance property
存储的实例属性不能通过调用实例方法直接初始化,因为在初始化时实例正是还不存在的东西。