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