這是我的代碼。我想要在數據從Web服務分配到數組之後返回一個包含數據的數組。我有use block來檢查。 這是從我的頭文件...如何在成功塊中返回一個NSArray,iOS,Objective-C
typedef void(^FailureBlock)(NSError *error);
typedef void(^SuccessBlock) (NSMutableArray *responseArray);
這是我的執行文件....
- (void)setupConnectionWithsuccess:(SuccessBlock)success failure:(FailureBlock)failure
{
airportArray = nil;
NSString *airportCode = [NSString stringWithFormat:@"some code"];
NSString *authenticationCode = [NSString stringWithFormat:@"some api"];
NSString *baseurl = [NSString stringWithFormat:@"some url",authenticationCode,airportCode];
// 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:@"Airport"];
[airportArray addObject:airports];
NSLog(@"%@", airports);
}
if(success){
success(airportArray);
}
//NSLog(@"%@", responseObject);
}
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
}
UIAlertController *mainAlert = [UIAlertController alertControllerWithTitle:@"Something Wrong!" message:[error localizedDescription] preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:mainAlert animated:YES completion:nil];
}];
}
那麼成功後,我想將數組從這個method.how返回可我這樣做
- (NSArray *)returnAll
{
[self setupConnectionWithsuccess:^(NSMutableArray *responseArray) {
} failure:^(NSError *error) {
}];
}
請幫我這個。我是iOS新手。
你面臨什麼問題? –
並且不需要檢查是否(成功)和如果(失敗)因爲兩個塊的不同而不同。 –
您無法返回塊中的任何內容,而是您在代碼中調用此處時必須使用該塊 當您調用此 [self setupConnectionWithsuccess:^(NSMutableArray * responseArray){ nsmutable array here } failure:^(NSError * error){ }]; – jogshardik