0

在功能上,这在 Xcode 6.2 中完美运行,现在我有一个错误'subscript' in unavailable: Indexing a String's UTF16View requires a String.UTF16View.Index, which can be constructed from Int when Foundation is imported。这是代码:

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

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

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

1 回答 1

1

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

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

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

于 2015-04-11T14:23:34.640 回答