Controller 到 Controller 的回调响应

Callback response from ControllerB to ControllerA

我需要为我的一个项目制作 SDK,我需要做的是进行搜索 class 其中 return 来自网络的响应 API,

我正在寻找这样的东西。

SearchController * sc = [[SearchController alloc] initWithSearchText:@"google"];

每次更改 textField 文本时都会调用此方法,我得到的响应应该是块状的。

如有任何帮助和参考,我们将不胜感激。

您可以在 SearchController 中创建一个块方法并获得您想要的类型的响应。

-(void)executeSearchRequestWithHandler:(void (^)(BOOL result))completionHandler {
     //Do your api calling and than handle completionHandler
     completionHandler(YES);
     //You can set completionHandler type that you want like NSArray,NSString,NSDictionary etc
}

现在像这样调用这个方法。

[sc executeSearchRequestWithHandler:^(BOOL result) {
    if (result) {

    }
}];

注意:这里我创建了带有BOOL参数的块,你可以从响应中设置你想要的参数类型,比如NSArrayNSDictionary,NSString

SearchController.h

typedef void (^SearchHandler)(id results,NSError *error);

@interface SearchController : NSObject
{
    SearchHandler searchBlock;
}
-(void)searchWithText:(NSString *)strText Results:(SearchHandler)searchResult;

SearchController.m

-(void)searchWithText:(NSString *)strText Results:(SearchHandler)searchResult
{
    searchBlock = [searchResult copy];

    //call api for text search
}

-(void)getResponseOfApi
{
    //code where get api response
    searchBlock(apiResonse,apiError);
}

调用 SearchController api 块

SearchController * sc = [[SearchController alloc] init];
    [sc searchWithText:@"google" Results:^(id results, NSError *error) {
        //block with api response
    }];