我有一个类,我想在运行时设置它的属性值,尽管没有设置它的签名。
例如:
public class CBCentralManager : NSObject {
public var state: CBCentralManagerState { get }
...
}
我希望能够随意更改此类的状态,因为我正在为单元测试创建存根。
存根:
class CBCentralManagerStub: CBCentralManager {
func changeState(newState: CBCentralManagerState) {
let val: NSValue = NSValue(&newState, withObjCType: &(CBCentralManagerState.rawValue))
self.setValue(val, forKey:"state")
}
}
在这里,我希望使用obj-C运行时方法,
setValue:forKey
要完成此操作,但我收到错误:
错误:'&'与'UnsafePointer'类型的非inout参数一起使用 (又名'UnsafePointer<()>')
有没有办法在运行时设置此类的值来操作它进行测试?