您好我试图在Xcode上运行两个示例。第一个是苹果的demobots示例,另一个是我在GitHub上找到的硬币推送示例。两次我得到相同的单个错误,'方法不会覆盖其超类中的任何方法'而我仍然坚持纠正这些问题的最佳方法。
这些是相应的代码行
1
override func supportedInterfaceOrientations() -> Int {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
}
else {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}
2
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String: AnyObject]?, context: UnsafeMutablePointer<Void>) {
// Check if this is the KVO notification we need.
if context == &progressSceneKVOContext && keyPath == "fractionCompleted" && object === progress {
// Update the progress UI on the main queue.
dispatch_async(dispatch_get_main_queue()) {
guard let progress = self.progress else { return }
// Update the progress bar to match the amount of progress completed.
self.progressBarNode.size.width = self.progressBarInitialWidth * CGFloat(progress.fractionCompleted)
// Display a contextually specific progress description.
self.loadingLabelNode.text = progress.localizedDescription
}
}
else {
super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
}
}
答案 0 :(得分:0)
在案例(1)中,基类UIViewController
的方法supportedInterfaceOrientations
包含签名() -> UIInterfaceOrientationMask
而非() -> Int
。这是错误消息告诉您的内容,也就是说,您提供实现的方法不会覆盖基类中的任何方法,而是仅在子类中可用的新方法。
我认为案例(2)是一个类似的故事。