2015-04-11 3 views
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. Это код:Подкатегория Swift 1.2 недоступна

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

И в этом коде я получаю ту же ошибку:

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

ответ

1

String.UTF16View является CollectionType, поэтому вы можете получить индекс первого элемента, используя его свойство startIndex :

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

(я не имею Xcode 6.2 больше на моем компьютере, поэтому я не могу е xplain, почему ваш код скомпилирован ранее.)

+0

Спасибо! Это сработало так, как я хотел! –

+0

BTW, см. Мой обновленный вопрос –

+0

@NikitinRoman: Это совершенно другой вопрос. Пожалуйста, напишите отдельно. –

Смежные вопросы