2016-02-11 63 views
0

在將我的Xcode項目轉換爲Swift 2之前,我使用了以下函數來解析我的TMX級別文件。它提供了一個在函數中使用的變量attributeDict。使用Swift解析TMX文件時出錯2.1.1

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]) { 

// my function code 

} 

轉換爲斯威夫特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)和你應該重新考慮你的字典鍵的類型。