gpt4 book ai didi

swift - Xcode 6 GM 中的 UIViewControllerAnimatedTransitioning

转载 作者:行者123 更新时间:2023-11-28 07:16:26 25 4
gpt4 key购买 nike

我有一个类,SlideAnimationController,它是 NSObject 的子类,应该符合 UIViewControllerAnimatedTransitioning 协议(protocol)。

在 Xcode 6 GM 中,我收到我的类不符合协议(protocol)的错误消息。

我已经实现了 transitionDurationanimateTransition。这是协议(protocol)要求的三种方法中仅有的两种必需方法。

添加最后一个方法 animationEnded 没有任何区别。

我错过了什么?同样的代码不久前还可以使用。

编辑

这是类的实现:

import UIKit

class SlideAnimationController: NSObject, UIViewControllerAnimatedTransitioning {

var fromIndex: Int = 0
var toIndex: Int = 0

func transitionDuration(transitionContext: UIViewControllerContextTransitioning!) -> NSTimeInterval {
return 1
}

func animateTransition(transitionContext: UIViewControllerContextTransitioning!) {
//Stuff
}

}

最佳答案

此错误与 Swift 的 Objective-C API 版本的更改有关。在许多情况下,Swift 将可选变量隐式解包为参数,这些参数已更改为普通变量或可选变量。

通常,当覆盖一个方法时,Xcode 会提供一个修复程序来纠正 !不再需要它们的地方。

但是,由于我声明的这些方法不一定是协议(protocol)的一部分,Xcode 识别这些方法,只是没有意识到那些是我想要的协议(protocol)。

为了解决这个问题,我需要从两个方法参数中删除 !(例如 UIViewControllerContextTransitioning! 变为 UIViewControllerContextTransitioning)

关于swift - Xcode 6 GM 中的 UIViewControllerAnimatedTransitioning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com