ios - 获取 "Type ' Float' 不符合协议(protocol) 'ForwardIndex' “Xcode Beta 4 中的范围错误

标签 ios xcode swift

当我更新到 Xcode Beta 4 时,我在创建范围时开始在我的项目中遇到奇怪的错误(例如 Range<Float> )。它说Type 'Float' does not conform to protocol 'ForwardIndex' .如果有人能告诉我我做错了什么,那就太好了。

谢谢!

编辑:

它不依赖于我的项目。我打开了一个空白的 Playground ,我得到了同样的错误。 enter image description here

最佳答案

的确,Float 不符合ForwardIndex。所有 UInt*Int* 类型都可以。不幸的是,目前似乎无法在范围内使用非 ForwardIndex 类型。如果您认为这是错误的,file a bug .


危险地带

您可以通过实现 successor()Float 勉强实现 ForwardIndex:

extension Float : ForwardIndex {
    // a method of the private _Incrementable protocol
    public func successor() -> Float { return self + 1 }
}
let f = Range<Float>(start: 3, end: 4) // "Range(3.0,4.0)"

但是一旦您尝试以某些方式使用它,它就会中断:

switch x {
case f: // 'Range<Float>' is not convertible to '_OptionalNilComparisonType'
    println("f")
// ...

您也许可以通过某种方式解决这个问题,但这可能不值得。如果您尝试比较 float ,舍入误差无论如何都会把您搞得一团糟!

关于ios - 获取 "Type ' Float' 不符合协议(protocol) 'ForwardIndex' “Xcode Beta 4 中的范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917259/

相关文章:

Xcode 代码感知颜色/完成不起作用

ios - 如何在 Swift 中创建 toast 消息?

ios - 在 iOS 中将一条线动画化为正弦波

ios - 错误状态 : Stream has already been listened to Flutter error

swift - 如何在 UITableViewCell 中创建一个圆形?

ios - Objective-C - 如何从另一个类(另一个 UIViewController)更改图像

c# - Swift 中的闭包转义 VS C# 中的委托(delegate)类型

ios - 如何测试 UIActivityTypePostToFacebook 或 UIActivityTypePostToTwitter 是否可用

ios - 带有动画的不同图像之间的 UIImageView 转换

ios - 用于匹配字符串子串的 Swift switch 语句