Swift 3.0中的KVO
首先,我想说的是,我在swift方面没有那么先进。但我想在播放器库的顶部构建一个自定义视频播放器,可以在这里找到: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
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
}