찾다

 >  Q&A  >  본문

ios - 如何在外面取得AFNetworking的block里的数据

写了一个方法需要返回值,但是需要返回的值在afnetworking的block回调里,

- (NSString *)correctShiftWithLongitude:(NSString *)lat latitude:(NSString *)lon {

            NSDictionary *params = @{
                                   @"lon" : lon, // 原始经度
                                   @"lat" : lat, // 原始纬度
                                   };

            __block NSString *longitude; // __block不管用,静态变量也不管用
            [self.manager POST:URL parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
                
                NSDictionary *locDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
                longitude = [locDictionary objectForKey:@"lon"]; // 纠正后经度
    
            } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                NSLog(@"%@", error);
            }];

    NSLog(@"%@", longitude); // longitude一直为空,请问如何在AFN的block回调里修改外部数据,或者说如何在block外输出数据?
    // 返回值一直为空
    return longitude;
}

代码如上,longitude一直为空,请问如何取得AFN的block里的数据,或者说如何在AFN的block外输出数据?

大家讲道理大家讲道理2893일 전473

모든 응답(1)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-17 18:00:00

    여기로 그냥 돌아가는 것은 쉽지 않습니다. 비동기식으로 차단할 수 있습니다. 예를 들어 이렇게 변경할 수 있습니다.

    으아아아

    회신하다
    0
  • 취소회신하다