gpt4 book ai didi

swift - NSUrl exc_bad_instruction?

转载 作者:行者123 更新时间:2023-11-28 13:13:56 25 4
gpt4 key购买 nike

我正在尝试按照本教程进行操作,但经过一些小的试验和错误运行后,我遇到了一个我不太了解的问题。我收到此错误 (?) exc_bad_instruction。我读到它通常发生在你试图打开 nil 或 nil 无效时?

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {

var cell:iGameTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? iGameTableViewCell
if(cell == nil) {
cell = NSBundle.mainBundle().loadNibNamed("iGameTableViewCell", owner: self, options: nil)[0] as? iGameTableViewCell
}

if let pfObject = object {
cell?.gameNameLabel?.text = pfObject["name"] as? String

var votes:Int? = pfObject["votes"] as? Int
if votes == nil {
votes = 0
}
cell?.gameVotesLabel?.text = "\(votes!) votes"

var credit:String? = pfObject["author"] as? String
if credit != nil {
cell?.gameCreditLabel?.text = "\(credit!)"
}

cell?.gameImageView?.image = nil
if var urlString:String? = pfObject["url"] as? String {
var url:NSURL? = NSURL(string: urlString!)
if var url:NSURL? = NSURL(string: urlString!) {
var error:NSError?
var request:NSURLRequest = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 5.0)

NSOperationQueue.mainQueue().cancelAllOperations()

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {
(response:NSURLResponse!, imageData:NSData!, error:NSError!) -> Void in

cell?.gameImageView?.image = UIImage(data: imageData)

})
}
}
}

return cell
}

最佳答案

看这两行:

 var url:NSURL? = NSURL(string: urlString!)
if var url:NSURL? = NSURL(string: urlString!) {
  • 首先,你不能同时想要它们;他们都做同样的事情不同的方式。

  • 其次,first 线路的运行方式很危险。删除它。

  • 第三,删除urlString!中的感叹号和类型声明 NSURL?

现在你将拥有这个:

 if var url = NSURL(string: urlString) {

那是安全的,也是这种展开的样子。

编辑:澄清一下:这是一件非常自欺欺人的事情:

if var urlString:String? = pfObject["url"] as? String

原因如下。 if var ... =if let ... = 构造解开等号右侧的 Optional。这就是它的目的:安全地解开 Optional。但是通过添加 :String? 声明,您将它再次包装在一个 Optional 中,从而破坏了该构造的全部目的!你想这样说:

if var urlString = pfObject["url"] as? String

现在 urlString,如果它是任何东西的话,是一个未包装字符串,这就是您想要的。

关于swift - NSUrl exc_bad_instruction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30044212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com