假设我有一个类 UploadManager
并在我的 ViewController
中创建了它的一个实例。 UploadManager.m
有一个方法 -(void)requestData
-(void)requestData
{
HTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] init];
[operation setCompletionBlockWithSuccess:^(HTTPRequestOperation *operation, id responseObject){
// Do something here
}];
[operation start];
}
现在我可以从 ViewController.m
中的 UploadManager
实例调用 requestData
方法,但我想用触发完成 block 后,ViewController.m
中的 responseObject
。这样做的最佳方法是什么?我假设我可以制作一个委托(delegate)方法,但我想知道是否有更好的解决方案。谢谢。
最佳答案
你可以为此使用 block 结构
-(void)requestDataWithHandler:(void (^)(id responceObject))handler
{
HTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] init];
[operation setCompletionBlockWithSuccess:^(HTTPRequestOperation *operation, id responseObject){
// Do something here
if(handler)
{
handler(responceObject)
}
}];
[operation start];
}
在另一个类(class)
[uploadManager requestDataWithHandler:^(responceObject) {
// here work with responeObject
}];
关于ios - 如何处理类之间完成 block 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534329/