Swift UIViewControlleranimated在Xcode 6 GM中转换

Swift UIViewControlleranimated在Xcode 6 GM中转换,swift,ios8,xcode6,transitions,Swift,Ios8,Xcode6,Transitions,我有一个类,SlideAnimationController,它是NSObject的一个子类,应该符合UIViewControllerAnimatedTransitioning协议 在Xcode 6 GM中,我得到一条错误消息,表明我的类不符合协议 我已经实现了transitionDuration和animateTransition。这是协议调用的三种方法中唯一需要的两种 添加最后一个方法,animationEnded,没有任何区别 我错过了什么?不久前,同样的代码还在运行 编辑 下面是类实现:

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

在Xcode 6 GM中,我得到一条错误消息,表明我的类不符合协议

我已经实现了
transitionDuration
animateTransition
。这是协议调用的三种方法中唯一需要的两种

添加最后一个方法,
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
    }

}

这个bug与Swift的Objective-CAPI版本的更改有关。在许多情况下,Swift隐式地将选项作为参数展开,参数已更改为普通变量或可选变量

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

然而,由于我声明的这些方法不一定是协议的一部分,Xcode识别出这些方法,只是没有意识到这些是我想要用于协议的方法


为了解决这个问题,我需要移除来自两个方法参数(例如,
UIViewControllerContextTransitioning!
变成
UIViewControllerContextTransitioning

这听起来像是一个bug,但您能发布一些代码以便我们检查它的合理性吗?可能是您在实现中声明与协议和方法签名一致的地方。@Acey当然,让我把它添加到问题中。@Acey我知道哪里错了。“那个!”s是早期测试版遗留下来的。在这种情况下,因为我没有凌驾于此,所以它没有向我指出问题。我想如果有这样的问题,它会像覆盖一样解决我。是的,这就是我所怀疑的。我正在安装XCODE 6通用汽车来测试哈。继续写下你的答案,然后自我接受,我想你不会是唯一一个陷入困境的人。他们正在改变许多API,在不需要时不包括可选的API。