gpt4 book ai didi

ios - 如何在ios中的成功 block 中返回数组

转载 作者:行者123 更新时间:2023-11-29 01:21:37 25 4
gpt4 key购买 nike

我正在从 Web 服务获取数据。然后我想将该数据放入可变数组并返回该数组。我只是为了检查数组是否为空。

我已经在我的头文件中定义了这个

typedef void(^FailureBlock)(NSError *error);
typedef void(^SuccessBlock) (NSArray *responseArray);

这是我的实现文件

- (void)setupConnectionWithsuccess:(SuccessBlock)success failure:(FailureBlock)failure
{
airportArray = nil;
NSString *Code = [NSString stringWithFormat:@"something"];
NSString *authCode = [NSString stringWithFormat:@"something"];
NSString *baseurl = [NSString stringWithFormat:@"someurl%@%@",authCode,Code];
// NSString *mainurlString = [NSString stringWithFormat:@""];
// NSURL *mainurl = [NSURL URLWithString:mainurlString];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:baseurl parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {

NSArray *mainArray = (NSArray *)responseObject;

airportArray = [[NSMutableArray alloc] init];
for (NSDictionary *all in mainArray) {
airports = [all objectForKey:@"port"];

[airportArray addObject:airports];
NSLog(@"%@", airports);
}

if(_successBlock){
_successBlock(airportArray);
}

//NSLog(@"%@", responseObject);
}
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

if (_failureBlock) {
_failureBlock(error);
}
UIAlertController *mainAlert = [UIAlertController alertControllerWithTitle:@"Something Wrong!" message:[error localizedDescription] preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:mainAlert animated:YES completion:nil];

}];




}

- (void)printap
{ NSLog(@"ffffuuu");
[self setupConnectionWithsuccess:^(NSArray *responseArray) {

NSLog(@"Checking ::::%@", responseArray);

} failure:^(NSError *error) {

UIAlertController *failureAlert = [UIAlertController alertControllerWithTitle:@"Errrrr..." message:@"Errrrr...." preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:failureAlert animated:YES completion:nil];
}];
NSLog(@"fkjfkdjkfjdkfjdk");
}

** 我想在检索到数据后使用这个 airportArray(想要返回数组)。我该怎么做

最佳答案

这些行:

    if(_successBlock){
_successBlock(airportArray);
}

应该是:

    if(success){
success(airportArray);
}

我不知道 _successBlock 是什么,但您想使用传递给 setupConnectionWithsuccess:failure: 方法的参数。

通过将 _failureBlock 替换为 failure 对失败 block 进行类似的更改。

关于ios - 如何在ios中的成功 block 中返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34523731/

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