Ошибка синтаксического анализа файла TMX с Swift 2.1.1
Перед преобразованием моего проекта Xcode в Swift 2 у меня была следующая функция, которую я использовал для анализа файлов уровня TMX. Он предоставил переменную attributeDict для использования внутри функции.
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]) {
// my function code
}
После преобразования в Swift 2 (сейчас я использую 2.1.1), мне было предложено изменить его на функцию @objc и изменить некоторые синтаксисы. Теперь, когда переменная attributeDict была доступна внутри функции, теперь переменная не создается, оставляя многочисленные ошибки
@objc func parser(parser: NSXMLParser, didStartElement elementName: String?, namespaceURI: String?, qualifiedName qName: String?, attributes: attributeDict<NSObject,AnyObject>) {
// my function code
}
Должно быть, я неправильно изменил синтаксис, но из документации не могу понять, что я сделал неправильно. Надеюсь, это очевидно для кого-то еще. Любая помощь будет высоко ценится.
1 ответ
Конверсия провалила декларацию attributeDict
, Измените этот бит обратно на то, что было раньше:
attributes attributeDict: [NSObject : AnyObject]
Обратите внимание, что вы можете обнаружить, что получили ошибку, если вам не разрешено использовать NSObject
в качестве ключа для словаря (словарные ключи должны соответствовать Hashable
) и вам, вероятно, следует пересмотреть тип ключей словаря.