Ios 调用web API时混淆错误

Ios 调用web API时混淆错误,ios,json,swift,Ios,Json,Swift,我们有几个SDK,旨在使所有技能级别的开发人员(包括最新的政府API)尽可能轻松地使用它们。我现在正试图在Swift的一个应用程序上领先一步,我正在一个简单的应用程序中开始使用它,这个应用程序有一个目的:证明SDK是有效的 我遇到的麻烦是,由于我无法解释完整源代码所在的原因,它正在崩溃 视图控制器: import UIKit class ViewController: UIViewController, GovDataRequestProtocol { var firstReque

我们有几个SDK,旨在使所有技能级别的开发人员(包括最新的政府API)尽可能轻松地使用它们。我现在正试图在Swift的一个应用程序上领先一步,我正在一个简单的应用程序中开始使用它,这个应用程序有一个目的:证明SDK是有效的

我遇到的麻烦是,由于我无法解释完整源代码所在的原因,它正在崩溃

视图控制器:

import UIKit

class ViewController: UIViewController, GovDataRequestProtocol {


    var firstRequest: GovDataRequest = GovDataRequest(APIKey: "", APIHost: "http://data.fcc.gov", APIURL: "/lpfmapi/rest/v1/lat/36")
    //var firstRequest: GovDataRequest = GovDataRequest(APIKey: "", APIHost: "https://itunes.apple.com", APIURL: "/search")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.firstRequest.delegate = self
        //var arguments = Dictionary<String, String>()
        var arguments = ["format": "json", "secondchannel": "true"]
        //var arguments = ["term": "Angry Birds", "media": "software"]
        var timeOut = 60.0
        firstRequest.callAPIMethod(method: "long/-119", arguments: arguments, timeOut: timeOut)
        //firstRequest.callAPIMethod(method: "", arguments: arguments, timeOut: timeOut)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func didCompleteWithError (errorMessage: String) {
        NSLog("error")

    }

    func didCompleteWithArray (results:NSArray) {
        println("success!")
        //Let's see what we've got
        for item : AnyObject in results {
            if let oneItem = item as? NSDictionary {
                println("Dictionary!")
            } else {
                println("Not a Dictionary!")
            }

        }

    }
}
当我使用iTunesAPI进行测试时,它是有效的。如果我使用FCC,那么它会在代码底部EXC_BAD_指令代码=exic386_INVOP,子代码=0x0附近的错误处理部分崩溃

如果我注释掉错误处理代码,它会在我在var task发送请求时崩溃。如您所见,我打印发送到urlToPackage的URL。我获取了输出并将其输入到chrome中,以验证URL的格式是否正确

想法


谢谢

返回的JSON似乎没有结果数组,因此此行:

var results: NSArray = jsonResult["results"] as NSArray

得到零&爆炸。当我将结果替换为有效键(如interferingAnalysis)时,您的示例代码工作正常。

这非常有意义。你知道他们怎么说另一双眼睛。谢谢
var results: NSArray = jsonResult["results"] as NSArray