如何使用 PFQuery getObjectWithId?

How to use PFQuery getObjectWithId?

使用 PFObjectPFQuery 我在调试这段代码时遇到问题:

.......

if let someContents = object.valueForKey("contents") {
    let query = PFQuery(className: "TheContentList")
    do {let object = try query.getObjectWithId(someContents.objectId)
        print(object)
    } catch {
        print(error)
    }
}

使用上面的代码,我得到了 getObjectWithId:

行的编译器消息
Cannot convert value of type 'String?!' to type 'String' in coercion

如果我改变:

query.getObjectWithId(someContents.objectId)

至:

query.getObjectWithId("xyz23AcSXh")

它编译并在调试器中我得到这个:

(lldb) p someContents.objectId
(String?!) $R4 = "xyz23AcSXh"

并且程序按预期打印了一个对象。

所以问题是:我应该如何编写行 query.getObjectWithId 才能使用 someContents 中的内容?

您的 属性 objectIdExplicitly Unwrapped OptionalOptional。如果您确定它包含 String,请使用:

展开它
let object = try query.getObjectWithId(someContents.objectId!!)

否则,如果您不确定:

if let objectId = someContents.objectId, id = objectId {
    let object = try query.getObjectWithId(id)
}