2016-02-11 10 views
0

Перед преобразованием моего проекта Xcode в Swift 2 у меня была следующая функция, которую я использовал для анализа файлов уровня TMX. Он предоставил переменную attributeDict для использования внутри функции.Ошибка в Parsing TMX-файле с Swift 2.1.1

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 FUNC и изменить некоторые синтаксиса. Теперь, когда переменная 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) и вам следует, вероятно, пересмотреть тип ключей словаря.