2015-04-04 1 views
0

У меня есть бэкенд, который размещается на герой, используя django, и у меня есть приложение iOS, которое использует этот api. Иногда приложение выдает эту ошибкуkCLErrorDomain iOS с запросом прервано sock = client heroku

locman err: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 

Бэкэнд для того же запроса выдает эту ошибку

sock=client at=error code=H18 desc="Request Interrupted" status=503 

Как мне справиться с этим в прошивкой? Кажется, что это проблема с приложением. Я просто отправляю слишком много запросов сразу? Вот что мой контроллер апи выглядит

class func getPictures(location_id: String, completionHandler:(cardImageArray: [CardImage])->()){ 


    var bodyString: String = "location_id=\(location_id)" 
    bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! 


    let url: NSURL = NSURL(string: BASE_URL + "/api/v1/get_pictures" + "?" + bodyString)! 

    let req: NSMutableURLRequest = NSMutableURLRequest(URL: url) 
    req.HTTPMethod = "GET" 
    //req.HTTPBody = bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) 

    NSURLConnection.sendAsynchronousRequest(
     req, 
     queue: NSOperationQueue.mainQueue()) 
     { (res: NSURLResponse!, data: NSData! , err: NSError!) -> Void in 
      let jsonDict = JSON(data: data, options: NSJSONReadingOptions.AllowFragments, error: nil) 

      if (jsonDict["response"].int == 1){ 

       var cardImageArray: [CardImage] = [] 

       if let photo_urls = jsonDict["photo_urls"].array{ 

        //      NSString(data: data, encoding: nil) 

        for photo_url_raw in photo_urls{ 

         if let url_string = photo_url_raw.string{ 
          let ci = CardImage(urlstring: url_string) 
          cardImageArray.append(ci) 
         } 


        } 

        return completionHandler(cardImageArray: cardImageArray) 

       } 


      }else{ 

       println("error in get pictures") 

       if let errorMessage = jsonDict["error"].string{ 
        return 
       } 

      } 
    } 
} 

ответ

0

выяснял это сообщение об ошибке печатается, когда менеджер места не может решить, что местоположение пользователей. Просто обработал ошибку и попросил пользователя нажать кнопку, чтобы повторить попытку.

Смежные вопросы