iOS上的Http请求。没有完整的字符串

时间:2015-04-14 20:51:47

标签: ios iphone json

我有这个代码来调用webservice来检索给定地址的坐标:

NSLog(@"\ndata:%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

NSError* error;
NSDictionary* json = [NSJSONSerialization
                      JSONObjectWithData:data

                      options:kNilOptions
                      error:&error];
if (error != nil) {
    NSLog(@"\nerror:%@", error);
}

当我拨打2或3电话时,其中一些我收到错误!= nil因为字符串未满。

例如,如果我第三次或随机时间调用“广告”(http://maps.google.com/maps/api/geocode/json?address=ads),我会收到此字符串:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Addison Airport",
               "short_name" : "Addison Airport",
               "types" : [ "establishment" ]
            },
            {
               "long_name" : "220",
               "short_name" : "220",
               "types" : [ "subpremise" ]
            },
            {
               "long_name" : "16051",
               "short_name" : "16051",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Addison Road",
               "short_name" : "Addison Rd",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Addison",
               "short_name" : "Addison",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Dallas County",
               "short_name" : "Dallas County",

enter image description here

所以我的解析器不起作用。

我再说一遍,这是随机时间,我必须多次执行代码才能重现它。

我做错了什么?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您忘记收集整个响应的所有数据片段并将它们一起放在一个NSData对象中。这只是完整响应的一部分。也许这post可以帮到你。