swiftにてGracenoteのAPI実装をやっているのですがエラーになってしまいうまく起動することができません。

知識が浅いため一人で解決することができずこちらに質問させていただきました。どう改善すればいいのでしょうか、お力貸していただけると幸いです。

以下がコードです。

具体的には「//requestを送信」の部分が

Cannot convert value of type '(NSURLResponse!, data: NSData!, error:
NSError!) -> ()' to expected argument type '(NSURLResponse?, NSData?,
NSError?) -> Void'

とエラー表示されてしまい、
「//取得したXMLをエレメント毎に取得」の部分が

Objective-C method
'parser:didStartElement:namespaceURI:qualifiedName:attributes:'
provided by method
'parser(:didStartElement:namespaceURI:qualifiedName:attributes:)'
conflicts with optional requirement method
'parser(
:didStartElement:namespaceURI:qualifiedName:attributes:)' in
protocol 'NSXMLParserDelegate'

とエラー表示されてしまいます。

「XXXXXXXXXXX」の部分にはクライアントIDやユーザーIDが入ります。

よろしくお願いいたします。

import UIKit

class ViewController: UIViewController ,NSXMLParserDelegate{

    override func viewDidLoad() {
        super.viewDidLoad()

        //XML
        let str = "<QUERIES><AUTH><CLIENT>XXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</CLIENT><USER>XXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</USER></AUTH><QUERY CMD='ALBUM_SEARCH'><MODE>SINGLE_BEST_COVER</MODE><TEXT TYPE='ARTIST'>perfume</TEXT><TEXT TYPE='ALBUM_TITLE'>GAME</TEXT><TEXT TYPE='TRACK_TITLE'>チョコレイト・ディスコ</TEXT><OPTION><PARAMETER>SELECT_EXTENDED</PARAMETER><VALUE>COVER,REVIEW,ARTIST_BIOGRAPHY,ARTIST_IMAGE,ARTIST_OET,MOOD,TEMPO</VALUE></OPTION><OPTION><PARAMETER>SELECT_DETAIL</PARAMETER><VALUE>GENRE:3LEVEL,MOOD:2LEVEL,TEMPO:3LEVEL,ARTIST_ORIGIN:4LEVEL,ARTIST_ERA:2LEVEL,ARTIST_TYPE:2LEVEL</VALUE></OPTION></QUERY></QUERIES>"

        //UTF-8にエンコード
        let xmlData = str.dataUsingEncoding(NSUTF8StringEncoding)

        //URLの指定
        var url: NSURL! = NSURL(string: "https://c9767936.web.cddbp.net/webapi/xml/1.0/")
        var request = NSMutableURLRequest(URL: url)

        //XMLヘッダーの指定
        request.setValue("application/xml", forHTTPHeaderField: "Content-type")

        //POSTを指定
        request.HTTPMethod = "POST"

        //Dataをセット
        request.HTTPBody = xmlData

        //requestを送信
        NSURLConnection.sendAsynchronousRequest(request,queue: NSOperationQueue.mainQueue(),completionHandler: response)

    }

    //返ってきたAPIのデータを取得
    func response(res: NSURLResponse!, data: NSData!, error: NSError!){

        //XMLに変換
        let parser : NSXMLParser? = NSXMLParser(data: data)
        if parser != nil {
            parser!.delegate = self
            parser!.parse()
        } else {
            // パースに失敗した時
            print("failed to parse XML")
        }

    }

    //取得したXMLをエレメント毎に取得
    func parser(parser: NSXMLParser,didStartElement elementName: String,namespaceURI: String?,qualifiedName: String?,attributes attributeDict: [NSObject : AnyObject])
    {
        print(elementName)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}