macos - Swift 1.2 下标不可用

标签 macos cocoa swift xcode6.3

在函数中,在 Xcode 6.2 中完美运行,现在我遇到了一个错误 “下标”不可用:索引字符串的 UTF16View 需要一个 String.UTF16View.Index,它可以在导入 Foundation 时从 Int 构造。这是代码:

extension Character {
    var keyCode: Int {
        return Int(String(self).utf16[0])
    }
}

在这段代码中我遇到了同样的错误:

extension NSEvent {
    var character: Int {
        return Int(charactersIgnoringModifiers!.utf16[0])
    }
}

最佳答案

String.UTF16View是一个CollectionType,因此你可以获取索引 使用第一个元素的 startIndex 属性:

extension Character {
    var keyCode: Int {
        let utf16view = String(self).utf16
        return Int(utf16view[utf16view.startIndex])
    }
}

(我的计算机上不再有 Xcode 6.2,因此我无法 解释一下为什么你的代码之前编译过。)

关于macos - Swift 1.2 下标不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29578860/

相关文章:

macos - 用于解析别名路径的 OS X 终端命令

python - 如何在 Mac OS X 上将 py 扩展与 python 启动器相关联?

cocoa - 如何让调试器在任何地方停止?

objective-c - NSWindow 打开时运行方法?

ios - 从后台线程调用动画 +UIView setAnimationsEnabled 错误

arrays - SWIFT:具有 "direct"访问权限的快速阵列

macos - mac os x 10.9 lua 更新到最新的 5.2.2

c++ - Qt/OSX WebSocket 打开握手超时

objective-c - 在 OSX 10.8 SDK/objective-c 中拖动一个按钮

ios - 显示不同选项的 MPVolume View