if 语句中的代码=exc_i386_invop 子代码=0x0

code=exc_i386_invop subcode=0x0 in if statement

我正在尝试从 Swift 中的 dispatch_async 网络接收数据。这是一段运行新线程的代码:

override func viewWillAppear(animated: Bool) {
    let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
    dispatch_async(queue, {
        dispatch_async(queue, {
            self.loadData()
        })
    })
}

这是我的 loadData():

func loadData() {
    var feedItems = [Item]()
    let stringUrl = BASE_URL + "newsfeed.get?filters=photo,wall_photo&count=100&max_photos=10&source_ids=friends,following&v=5.28&access_token=" + accessToken
    let url = NSURL(string: stringUrl)

    let urlRequest = NSURLRequest(URL: url!)
    var response: NSURLResponse?
    var error: NSError?

    println("Loading data")

    let data = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: &response, error: &error)

    if data != nil && error == nil  {
        ...
    }

但我总是在最后一个 if 语句中得到 code=exc_i386_invop subcode=0x0。如果我删除数据!= nil,一切似乎都没有问题,但我在下一个 if 语句中遇到了同样的错误,同时检查另一个 nil 错误。怎么了?

终于想通了。这个项目出了点问题。我创建了一个新项目并在那里复制了源代码。现在完美了。