账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    oc中使用NSURLSessionDataTask获取数据, 怎么获取返回值
    29
    0
    + (void)getWeexInfo {
         NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
            if (!error) {
                NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                if (httpResponse.statusCode == 200) {
                    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
                }    
        }
    }

    我想把这个dict当做函数的参数return, 大致这么用:

    NSDictionary *dict = [self getWeexInfo];

    请问怎么写, 谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 Objective-C 中,使用 NSURLSessionDataTask 获取数据时,通常会在其代理方法或 completion handler 中获取返回值。以下是一个基本示例:

      ```objc NSURLSession session = [NSURLSession sharedSession]; NSURL url = [NSURL URLWithString:@"https://api.example.com/data"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

      NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { if (error) { NSLog(@"Error: %@", error); return; }

      // 检查HTTP响应是否成功
      NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
      if ([httpResponse statusCode] >= 200 && [httpResponse statusCode] < 300) {
          // 数据成功获取,解析返回的 NSData 为所需对象(例如 JSON)
          NSError *jsonError;
          id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
      
          if (!jsonError) {
              // json 现在包含了从服务器返回的数据,你可以处理这个数据
              NSLog(@"Received JSON: %@", json);
          } else {
              NSLog(@"Error parsing JSON: %@", jsonError);
          }
      } else {
          NSLog(@"HTTP status code %ld", (long)[httpResponse statusCode]);
      }
      

      }];

      [task resume]; ```

      在这个例子中,completionHandler 的第一个参数就是服务器返回的数据(NSData 类型)。你可以根据实际需求将其转换成字符串、JSON 或其他类型的数据。如果发生错误,可以在 NSError 对象中获取相关信息。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部