AFNetworking 缺少 setCompletionBlock ios swift
AFNetworking missing setCompletionBlock ios swift
我正在尝试从 url 下载 pdf 文件并取得进展。一切都好。但是我找不到setCompletionBlock,为什么?
这是我的工作代码:
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()
您正在将 AFHTTPRequestOperation
转换为 AFURLConnectionOperation
:
let operation: AFURLConnectionOperation = AFHTTPRequestOperation(request: request)
但是 setCompletionBlockWithSuccess
是在 AFHTTPRequestOperation
中定义的,而不是 AFURLConnectionOperation
。
相反,让 operation
成为 AFHTTPRequestOperation
:
let operation = AFHTTPRequestOperation(request: request)
然后就可以识别setCompletionBlockWithSuccess
成功了。
我正在尝试从 url 下载 pdf 文件并取得进展。一切都好。但是我找不到setCompletionBlock,为什么? 这是我的工作代码:
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()
您正在将 AFHTTPRequestOperation
转换为 AFURLConnectionOperation
:
let operation: AFURLConnectionOperation = AFHTTPRequestOperation(request: request)
但是 setCompletionBlockWithSuccess
是在 AFHTTPRequestOperation
中定义的,而不是 AFURLConnectionOperation
。
相反,让 operation
成为 AFHTTPRequestOperation
:
let operation = AFHTTPRequestOperation(request: request)
然后就可以识别setCompletionBlockWithSuccess
成功了。