错误:重写public func ObservationValueForKeyPath

问题描述 投票:19回答:2

我正在使用适用于Xcode 7 Beta 2的代码。刚刚获得Beta 3,现在我遇到了似乎是Xcode错误的问题?

对于我的公开课之一...

override public func observeValueForKeyPath...

方法不会覆盖其超类中的任何方法

所以我删除了“替代”:

public func observeValueForKeyPath

方法与具有相同Objective-C选择器的超类NSObject中的方法冲突

哈!我被第一个错误骗了。不会编译。有什么帮助吗?

ios swift key-value-observing
2个回答
22
投票

将声明中的[NSObject:AnyObject]更改为[String:AnyObject]


31
投票

如果从NSKeyValueObserving.h复制定义,则您的替代将如下所示:

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    // ...
}

注意:对于这种方法,通常可以按Cmd+Shift+O并直接转到Open Quickly ...弹出字段,可以在其中复制/粘贴任何定义,并且Xcode会搜索在项目/ SDK中。在这种情况下,请注意iOS范围。

© www.soinside.com 2019 - 2024. All rights reserved.