簡體   English   中英

輕按按鈕時的SIGABRT

[英]SIGABRT when tapping button

我現在有一個簡單的應用程序,並且有一個名為“加載”的按鈕,並且有以下幾行。 每次運行它時,我都點擊加載按鈕以加載詳細信息,然后,它似乎凍結並導致線程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)

您選擇器對於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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM