使用Swift

时间:2015-11-14 17:24:46

标签: swift core-bluetooth

我有一个类,我想在运行时设置它的属性值,尽管没有设置它的签名。

例如:

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<()>')

有没有办法在运行时设置此类的值来操作它进行测试?

0 个答案:

没有答案