gpt4 book ai didi

ios - 如何处理类之间完成 block 的结果

转载 作者:行者123 更新时间:2023-11-28 18:59:32 25 4
gpt4 key购买 nike

假设我有一个类 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com