Swift 1.2下标不可用

时间:2015-04-11 14:12:10

标签: macos cocoa swift xcode6.3

在功能方面,这完全适用于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])
    }
}

1 个答案:

答案 0 :(得分:1)

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

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

(我的电脑上没有Xcode 6.2,因此我不能 解释为什么你的代码之前编译过。)