2014-09-23 3 views
2

Я использую файл для обработки моих звонков в мои API, который выглядит следующим образом:Swift IOS контроллер API перестал работать

import UIKit 

protocol APIControllerProtocol { 
    func JSONAPIResults(results: NSArray) 

} 

class APIController: NSObject { 
    var delegate:APIControllerProtocol? 

    func GetAPIResultsAsync(urlString:String, elementName:String) { 

     //The Url that will be called 
     var url = NSURL.URLWithString(urlString) 
     //Create a request 
     var request: NSURLRequest = NSURLRequest(URL: url) 
     //Create a queue to hold the call 
     var queue: NSOperationQueue = NSOperationQueue() 

     // Sending Asynchronous request using NSURLConnection 
     NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{(response:NSURLResponse!, responseData:NSData!, error: NSError!) ->Void in 
      var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil 
      //Serialize the JSON result into a dictionary 
      let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(responseData, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary 

      //If there is a result add the data into an array 
      if jsonResult.count>0 && jsonResult["\(elementName)"]?.count > 0 { 

       var results: NSArray = jsonResult["\(elementName)"] as NSArray 
       //Use the completion handler to pass the results 
       self.delegate?.JSONAPIResults(results) 

      } else { 

       println(error) 
      } 
     }) 
    } 
} 

Я зову его, используя что-то похожее на это:

var APIBaseUrl: String = "http://***.se/**/**.php" 
     var urlString:String = "\(APIBaseUrl)" 

     self.api.delegate = self 
     api.GetAPIResultsAsync(urlString, elementName:"groupActivities") 

Это недавно работал большой, но теперь мое приложение вылетает, и я получаю эту строку в APIController выделены:

let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(responseData, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary 

на Я думаю, что я изменил это, что я переключился с мобильного 4G-Интернета на мой WiFi.

В журнале я получаю: fatal error: unexpectedly found nil while unwrapping an Optional value

Изюминкой говорит: Thread 5: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

Это происходит независимо от того, что API я звоню. Я запускаю Xcode 6.0.1 и не делал никаких последних обновлений.

Cheers!

+0

Люди сообщают об ошибке с подключением Xcode 6GM и Wi-Fi. Закрыть, Xcode & simulator, очистить папку DerviedData, а затем повторить попытку. http://stackoverflow.com/questions/25372318/error-domain-nsurlerrordomain-code-1005-the-network-connection-was-lost –

+0

Отлично работает, пожалуйста, напишите как ответ. Хотя та же ошибка появляется в другой строке, но я верю, что это некоторая другая ошибка в моем коде, так как другие вызовы API работают нормально. Огромное спасибо! @SamBudda –

+2

Есть ли решение, если это происходит на устройстве? – Kaili

ответ

5

Многие люди сообщают об ошибке с подключением Xcode 6.0 GM и Wi-Fi.

Для решения этой проблемы попробуйте выполнить следующие действия

  • Закрыть Ваш Тренажер
  • Закрыть Ваш Xcode
  • Перейти в папку DerviedData и удалить все папки под ним. (~/Библиотека/Разработчик/Xcode/DerivedData) Не беспокойтесь, папки будут созданы снова, когда вы откроете свой проект в Xcode.
+0

Это не сработало. попробовал это несколько раз – Karthik

+1

То же самое, это тоже не сработало. Я предполагаю, что это работает только для Simulator? @ Karthik, у вас есть этот выпуск на устройстве, потому что это моя проблема – MoMo

+0

@MoMo, вы могли исправить это? – Nil

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