【问题标题】:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
【发布时间】:2015-11-16 20:28:41
【问题描述】:

在下面的代码中,我尝试使用解析来查找对象。当我打印带有注释掉 self.names.append((object["username"] as? String)!) 的对象时,我得到了带有用户名(我想要的属性)的对象。

当我打印对象而不注释掉 self.names.append((object["username"] as? String)!) 时,我确实得到了完全相同的对象,但没有用户名(我想要的属性)。

我对@9​​87654323@ 做同样的事情,但这确实有效。 我很肯定我没有犯任何拼写错误,包括大写。 (评论是大写的,用户名不是)

var comments = [String()]
var names = [String()]
var images = [UIImage()]
var imageFiles = [PFFile]()

override func viewDidLoad() {
    super.viewDidLoad()

    let query = PFQuery(className:"Post")
    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in

        if error == nil {

            for object in objects! {
                print(object)


                self.comments.append((object["Comment"] as? String)!)
                self.names.append((object["username"] as? String)!)     < Error Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
                self.imageFiles.append(object["imageFile"] as! PFFile)



                self.tableView.reloadData()
            }
        } else {
            // Log details of the failure
            print("error")
        }
    }
}

提前谢谢你!

【问题讨论】:

    标签: ios swift parse-platform


    【解决方案1】:

    以这种方式声明和初始化所有数组:

    var comments = [String]()
    var names = [String]()
    var images = [UIImage]()
    var imageFiles = [PFFile]()
    

    如果username 键可能丢失,您必须检查它。使用此代码,如果缺少密钥,它会附加 n/a

    self.names.append((object["username"] as? String) ?? "n/a")
    

    【讨论】:

    • 没有区别 :(
    • object 打印正确吗?
    • 当我注释掉“self.names.append((object["username"] as?String)!)”时,但不是当我在我的代码中有它时..
    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 2019-12-09
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    相关资源
    最近更新 更多