お世話になります
NSURLSessionで通信処理を書いているのですが、complecationHandlerを書いた時は、正しく呼ばれるのですが、delegateで処理しようトルするとうまくいかずに困っております。

let request : NSURLRequest = NSURLRequest(URL:xmlUrl)


            var config = NSURLSessionConfiguration.defaultSessionConfiguration()

            self.session = NSURLSession(configuration: config,
                delegate: self,
                delegateQueue: NSOperationQueue.mainQueue())


            func completionBlock(data: NSData!, response: NSURLResponse!, error: NSError!) -> Void {
                if error != nil{

                    if self.initLoading{
                        SVProgressHUD.dismiss()
                    }else{
                        self.footerIndicator.stopAnimating()
                    }
                    self.isLoading = false
                    self.initLoading = false
                    self.nowLoading = false

                    //アラートを表示して終了

                    self.workview.reloadData()

                }else{
                    if !notParseFlag{
                        var parser : NSXMLParser = NSXMLParser(data: data)
                        parser.delegate = self
                        parser.parse()
                    }
                }

            }


            //var task:NSURLSessionDataTask = self.session.dataTaskWithRequest(request)
            var task : NSURLSessionDataTask = self.session.dataTaskWithRequest(request, completionHandler:completionBlock)
            task.resume()

だとうまくcomplecationBlcokに入ってきます

let request : NSURLRequest = NSURLRequest(URL:xmlUrl)


            var config = NSURLSessionConfiguration.defaultSessionConfiguration()

            self.session = NSURLSession(configuration: config,
                delegate: self,
                delegateQueue: NSOperationQueue.mainQueue())

// func completionBlock(data: NSData!, response: NSURLResponse!, error: NSError!) -> Void {
// if error != nil{
//
// if self.initLoading{
// SVProgressHUD.dismiss()
// }else{
// self.footerIndicator.stopAnimating()
// }
// self.isLoading = false
// self.initLoading = false
// self.nowLoading = false
//
// //アラートを表示して終了
//
// self.workview.reloadData()
//
// }else{
// if !notParseFlag{
// var parser : NSXMLParser = NSXMLParser(data: data)
// parser.delegate = self
// parser.parse()
// }
// }
//
// }

            var task:NSURLSessionDataTask = self.session.dataTaskWithRequest(request)
            //var task : NSURLSessionDataTask = self.session.dataTaskWithRequest(request, completionHandler:completionBlock)
            task.resume()

以下delegateメソッド

                extension  WorkList {
                func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveResponse response: NSURLResponse, completionHandler: (NSURLSessionResponseDisposition) -> Void){
                    println("request_start")
                }
                func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didBecomeDownloadTask downloadTask: NSURLSessionDownloadTask) {
                    println("............")

                }
                func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
                    println("request_finish")

                    if !notParseFlag{
                        var parser : NSXMLParser = NSXMLParser(data: data)
                        parser.delegate = self
                        parser.parse()
                    }
                }

                func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?){
                    if self.initLoading{
                        SVProgressHUD.dismiss()
                    }else{
                        self.footerIndicator.stopAnimating()
                    }
                    self.isLoading = false
                    self.initLoading = false
                    self.nowLoading = false

                    //アラートを表示して終了

                    self.workview.reloadData()

                }
                func URLSession(session: NSURLSession, didBecomeInvalidWithError error: NSError?){
                    println(error)
                }

                func cancelConnect(){
                    self.session.getTasksWithCompletionHandler
                    {
                            (dataTasks, uploadTasks, downloadTasks) -> Void in

                            self.cancelTasksByUrl(dataTasks     as [NSURLSessionTask])

                    }
                }

                private func cancelTasksByUrl(tasks: [NSURLSessionTask])
                {
                    for task in tasks
                    {
                        task.cancel()
                    }
                }
            }

request_startがデバッグにあるのは確認したので、どうしたもんかなと。。。
よろしくお願いします。