2015-02-18 4 views
2

Я пытаюсь загрузить pdf-файл с URL-адреса с прогрессом. Все в порядке. Но я не могу найти setCompletionBlock, почему? Это мой рабочий код:AFNetworking missing setCompletionBlock ios swift

println("progress: \(0.0)") 

    let request: NSURLRequest = NSURLRequest(URL: NSURL(string: document.link)!) 
    let operation: AFURLConnectionOperation = AFHTTPRequestOperation(request: request) 
    let paths: NSArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) 
    let filePath: NSString = paths.objectAtIndex(0).stringByAppendingPathComponent("pdf_\(document.id).pdf") 
    operation.outputStream = NSOutputStream(toFileAtPath: filePath, append: false) 

    operation.setDownloadProgressBlock({(bytesRead, totalBytesRead, totalBytesExpectedToRead) -> Void in 

     var total: CGFloat = CGFloat(totalBytesRead)/CGFloat(totalBytesExpectedToRead) 
     println("progress: \(total)") 


    }) 

    //operation.setCompletionBlock ... can't found this block?! 

    operation.start() 

ответ

3

Вы бросаете ваш AFHTTPRequestOperation к AFURLConnectionOperation:

let operation: AFURLConnectionOperation = AFHTTPRequestOperation(request: request) 

Но setCompletionBlockWithSuccess определяется в AFHTTPRequestOperation, не AFURLConnectionOperation.

Вместо этого просто дайте operation быть AFHTTPRequestOperation:

let operation = AFHTTPRequestOperation(request: request) 

Затем он распознает setCompletionBlockWithSuccess успешно.