【发布时间】:2014-08-01 15:29:54
【问题描述】:
我正在创建一个基本的 iOS 应用程序,它在指定的 URL 上发送 HTTP“GET”请求并将该信息打印到文本字段中。
我没有收到任何错误,但我在 operationQueue 线程中收到 EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0) 错误。我是 iPhone 开发和 Swift 的新手,即使经过研究,我也不确定这意味着什么。
我的代码如下。我的视图只包含一个在触摸时执行 get 方法的按钮和一个文本字段。
import UIKit
import Foundation
class ViewController: UIViewController {
@IBOutlet var textField : UITextField
@IBOutlet var button : UIButton
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func get(sender: AnyObject) {
var url : String = "http://localhost:8080/Booknds/v1/Summary/1"
var request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: url)
request.HTTPMethod = "GET"
//send request
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse!, data: NSData! , error: NSError?) -> Void in
//get data from URL in dictionary form
let jsonResult : NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
// process jsonResult
if jsonResult != nil {
self.textField.text = "\(String(jsonResult.description))"
} else {
self.textField.text = "data: \(data), response: \(response), error: \(error)"// couldn't load JSON, look at error
}
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
【问题讨论】:
-
哪一行抛出异常?
-
哪个测试版?到目前为止已经有4个了。此外,他们都有自己的问题,所以我可以想象,不知道是你的错还是产品中的错误一定非常令人沮丧(根据我的经验,即使 beta 4 仍然有很多错误)。我会考虑离开 Swift,直到它稳定下来。先学Objective-C和Xcode 5.1,我觉得不会浪费时间。
-
我相信“let jsonResult ...”这行会引发异常,但我不能确定。我有最新的 Xcode 测试版,是的,虽然我最熟悉类似 Java 的语言,但也许 Objective-C 会是一条更好的路线。如果这个问题没有产生任何有用的答案,我可能会走这条路。
-
您解决过这个问题吗?我遇到了类似的异常,想知道您可能想出了什么。