Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 3.0中的KVO_Swift_Key Value Observing_Swift3 - Fatal编程技术网

Swift 3.0中的KVO

Swift 3.0中的KVO,swift,key-value-observing,swift3,Swift,Key Value Observing,Swift3,首先,我想说的是,我在swift方面没有那么先进。但我想在播放器库的顶部构建一个自定义视频播放器,可以在这里找到: https://github.com/piemonte/Player 在我的swift 3.0项目中,我遇到了一些我自己无法解决的问题,所以我想请你们帮忙。我收到以下错误: 类型为“Int”的表达式模式无法与类型为UnsafeMutablePointer的值匹配? 这在下面的代码中发生。(我排除了所有不相关的部分,因此代码可能会不时跳转。): private var PlayerO

首先,我想说的是,我在swift方面没有那么先进。但我想在播放器库的顶部构建一个自定义视频播放器,可以在这里找到:

https://github.com/piemonte/Player

在我的swift 3.0项目中,我遇到了一些我自己无法解决的问题,所以我想请你们帮忙。我收到以下错误:

类型为“Int”的表达式模式无法与类型为UnsafeMutablePointer的值匹配?

这在下面的代码中发生。(我排除了所有不相关的部分,因此代码可能会不时跳转。):

private var PlayerObserverContext=0
私有函数commonInit(){
self.player.addObserver(self,forKeyPath:PlayerRateKey,选项:([NSKeyValueObservingOptions.new,NSKeyValueObservingOptions.old]),上下文:&PlayerObserverContext)
}
脱硝{
self.player.removeObserver(self,forKeyPath:PlayerRateKey,context:&PlayerObserverContext)
}
重写公共函数observeValue(forKeyPath键路径:字符串?,对象的类别:AnyObject?,更改:[NSKeyValueChangeKey:AnyObject]?,上下文:UnsafeMutablePointer?){
开关(键路径、上下文){
案例(.some(PlayerRateKey),PlayerObserverContext):
真的
违约:
真的
}
错误发生在以下线路上:
case(.some(PlayerRateKey),PlayerObserverContext):


我希望这足够了。如果您有任何问题或希望我进一步澄清一些事情,请让我知道!提前谢谢。

您应该像上面那样使用
&PlayerObserverContext
。尝试过了,但这给了我另一个问题,Xcode告诉我删除符号(&s)。它说:
“&”与类型的非输入参数一起使用“\u OptionalNilComparisonType”
不太确定该怎么办:(可能不用
开关就可以试试。你能给我指出正确的方向吗?不需要完整的代码或功能齐全的代码,只是正确方向上的一个小示例。
private var PlayerObserverContext = 0

private func commonInit() {
   self.player.addObserver(self, forKeyPath: PlayerRateKey, options: ([NSKeyValueObservingOptions.new, NSKeyValueObservingOptions.old]) , context: &PlayerObserverContext)
}

deinit {
    self.player.removeObserver(self, forKeyPath: PlayerRateKey, context: &PlayerObserverContext)
}

override public func observeValue(forKeyPath keyPath: String?, of object: AnyObject?, change: [NSKeyValueChangeKey : AnyObject]?, context: UnsafeMutablePointer<Void>?) {
switch (keyPath, context) {
    case (.some(PlayerRateKey), PlayerObserverContext):
        true
    default:
        true
}