如何使用 PFQuery getObjectWithId?
How to use PFQuery getObjectWithId?
使用 PFObject
和 PFQuery
我在调试这段代码时遇到问题:
.......
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 中的内容?
您的 属性 objectId
是 Explicitly Unwrapped Optional
的 Optional
。如果您确定它包含 String
,请使用:
展开它
let object = try query.getObjectWithId(someContents.objectId!!)
否则,如果您不确定:
if let objectId = someContents.objectId, id = objectId {
let object = try query.getObjectWithId(id)
}
使用 PFObject
和 PFQuery
我在调试这段代码时遇到问题:
.......
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 中的内容?
您的 属性 objectId
是 Explicitly Unwrapped Optional
的 Optional
。如果您确定它包含 String
,请使用:
let object = try query.getObjectWithId(someContents.objectId!!)
否则,如果您不确定:
if let objectId = someContents.objectId, id = objectId {
let object = try query.getObjectWithId(id)
}