【问题标题】:SIGABRT when tapping button点击按钮时的 SIGABRT
【发布时间】:2014-06-25 19:56:40
【问题描述】:

我现在有一个简单的应用程序,我有一个名为“加载”的按钮,我有以下几行。每次我运行它时,我点击加载按钮来加载详细信息,当我这样做时,它似乎冻结并在线程 1 中导致 SIGABRT,然后调出 AppDelegate 文件。我怎样才能防止这种情况?怎么了?

编辑:我已将其缩小到方法本身,因为当我制作它时,它使用 ViewDidLoad 中没有按钮的方法,它会在我点击任何东西之前导致异常。不过,为什么?

loadButton.target = self
loadButton.action = "getMovieDetails:353"

还有getMovieDetails函数

// REST Request to get movie details
func getMovieDetails(movieID: Int) {
    let url: NSURL = NSURL(string: "http://yts.re/api/movie.json?id=\(movieID)")
    var request: NSMutableURLRequest = NSMutableURLRequest()
    request.URL = url
    request.HTTPMethod = "GET"

    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse!, data: NSData!, error: NSError!) -> Void in
        var error: AutoreleasingUnsafePointer<NSError?> = nil
        let json: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary

        if json {
            let movieTitleClean: AnyObject! = json["MovieTitleClean"]
            self.navigationItem.title = "\(movieTitleClean)"
        } else {
            self.navigationItem.title = "Error title"
        }


        })
}

对 appDelegate 所做的唯一更改是在第一个方法中

application.setStatusBarHidden(false, animated: false)
application.setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)

【问题讨论】:

    标签: ios rest button swift sigabrt


    【解决方案1】:

    您的选择器对于 loadButton.action 无效。你不能像 353 那样在最后给出论据。当按钮被触摸时,参数将是按钮本身,所以你应该有一个具有以下签名的函数:

    func handleLoadButtonTouch(loadButton: UIButton) { ... }
    

    然后,设置动作如下:

    loadButton.action = "handleLoadButtonTouch:" // note, the ':' is a weird artifact from Obj-C, which simply means 1 argument lives there
    

    【讨论】:

    • 那么像@IBAction func handleLoadButtonTouch(AnyObject) {getMovieDetails(353)} 这样的东西会起作用吗?因为当我尝试时我仍然得到一个错误,因为如上所述,我相信错误是在 getMovieDetails 方法中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多