如何在AFNetworking 2.0中使用Progress参数
我正在尝试使用NSURLSession的AFNetworking 2.0。 我正在使用该方法
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler;
我该如何使用进度参数。 该方法是一种非阻塞方法。 因此,我将不得不听取“ progress
”来获取更新。 但参数不会占用一个属性。 只需要一个局部variables(NSProgress * __autoreleasing *)。 我无法将KVO添加到本地variables。
我不太确定如何使用。
任何时候参数都是以**
forms给出的,这意味着你应该把指针传递给现有对象的指针,而不是像通常那样通过实际对象的指针。
在这种情况下,您传入指向NSProgress
对象的指针,然后观察该对象中的更改以获取更新。
例:
// Create a progress object and pass it in NSProgress *progress; [sessionManager uploadTaskWithRequest:request fromFile:fileURL progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { // Completion code }]; // Observe fractionCompleted using KVO [progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL];
然后它被报告在:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; if ([keyPath isEqualToString:@"fractionCompleted"] && [object isKindOfClass:[NSProgress class]]) { NSProgress *progress = (NSProgress *)object; NSLog(@"Progress is %f", progress.fractionCompleted); } }
- 从块内部variables
- 从AFNetworking直接获取NSData,而不是让它转换为UIImage
- 为什么RestKit改变我的响应内容types?
- UICollectionView – 下载图像并有效地重新加载数据,比如Instagram
- AFJSONRequestOperation数组填充,但不能NSLog成功块外的内容
- AFNetworking将JSON数组作为多个单项词典发布
- 当应用程序在后台时是否可以使用NSFileManager的`copyItemAtURL:toURL:error:`方法?
- APPLE MACH-O LINKED ERROR添加AFNetworking后
- 下载图像时调整UITableViewCell高度