如何在调用Web服务时查看数据?

时间:2014-03-05 01:54:53

标签: ios objective-c json web-services

我最近一直在进行iOS培训,现在我正在尝试学习Web服务。我相信我有一个主要概念:

  • 我打电话给网络服务

  • 我从该网络服务

  • 接收数据
  • 我解析JSON数据

  • 我现在对数据做任何我想做的事。

现在我已经在一个简单的Web服务示例上学习了很多教程,但是他们都使用表视图来填充他们的数据。在我更有经验之前,我不一定要那样做。现在,我只是想打个电话,获取数据,然后是NSLog。下面是我从教程中获得的一些代码:

#import <Foundation/Foundation.h>
#define WXFORECAST @"http://api.openweathermap.org/data/2.5/\
forecast/daily?q=%@&units=Imperial&cnt=7&mode=json"
#define LOCATION @"Fairbanks"

int main(int argc, const char * argv[])
{

@autoreleasepool {


    // insert code here...

    // Start the refresh control

    // Create the URL string based on location
    NSString *urlString =
    [NSString stringWithFormat:WXFORECAST, LOCATION];

    // Setup the session
    NSURLSessionConfiguration * configuration =
    [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session =
    [NSURLSession sessionWithConfiguration:configuration];
    NSURLRequest *request =
    [NSURLRequest requestWithURL:[NSURL
                                  URLWithString:urlString]];

    // Create a data task to transfer the web service endpoint contents
    NSURLSessionDataTask *dataTask =
    [session dataTaskWithRequest:request
               completionHandler:^(NSData *data,
                                   NSURLResponse *response, NSError *error) {

                   // Stop the refresh control

                   if (error)
                   {

                       return;
                   }

                   // Parse the JSON from the data object
                   NSDictionary *json = [NSJSONSerialization
                                         JSONObjectWithData:data options:0 error:nil];

                   // Store off the top level array of forecasts
                   NSMutableArray *items = [[NSMutableArray alloc] init];
                   items = json[@"list"];

                   }];

    // Start the data task
    [dataTask resume];

}
return 0;
}

现在说我不知道​​这个代码是轻描淡写的。当我看到这个时,我不知所措。我相信这段代码正在打电话,但现在我想从该Web服务中获取NSLog数据。这似乎是一个简单的答案,但过去几个小时我对此感到沮丧。

所有的帮助都表示赞赏,提前谢谢。

1 个答案:

答案 0 :(得分:0)

除了将NSLog作为上面建议的bobnoble之外,如果在执行以下代码行之后放置断点 - 您可以在调试器中打印出NSDictionary的内容。

      NSDictionary *json = [NSJSONSerialization
                                     JSONObjectWithData:data options:0 error:nil];

在上面的示例代码中,您将输入'po json'(不带单引号) - 这将输出整个字典。