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 错误。怎么了?
终于想通了。这个项目出了点问题。我创建了一个新项目并在那里复制了源代码。现在完美了。
我正在尝试从 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 错误。怎么了?
终于想通了。这个项目出了点问题。我创建了一个新项目并在那里复制了源代码。现在完美了。