対応するUserテーブルを指すポインタカラム(ユーザ)を持つテーブルUserProfileがあります。私はユーザーオブジェクトのUserProfileをつかむ簡単なクエリを構築しようとしています。しかし、クエリはnilを返しています(オブジェクト=私のアプリケーションのユーザーオブジェクト):ポインタの値を解析してnilを返すクエリ
let profileQuery = PFQuery(className: "UserProfile")
profileQuery.whereKey("user", equalTo: object)
profileQuery.includeKey("user")
profileQuery.limit = 1
profileQuery.findObjectsInBackgroundWithBlock{
(results: [PFObject]?, error: NSError?) -> Void in
if error != nil{
print(error)
} else if let results = results as? [PFObject]! {
for result in results {
self.profile = result
}
}
}
なぜこのクエリが機能しないのでしょうか?ありがとう!
Mazelのソリューション使用して更新されたコード:
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error != nil {
print(error)
} else if let objects = objects as? [PFObject]! {
for object in objects {
let profileQuery = PFQuery(className: "UserProfile")
profileQuery.whereKey("user", equalTo: PFObject(outDataWithClassName: "_User", objectId: "\(object.objectId!)"))
//profileQuery.includeKey("user")
profileQuery.limit = 1
profileQuery.findObjectsInBackgroundWithBlock{
(results: [PFObject]?, error: NSError?) -> Void in
if error != nil{
print(error)
} else if let results = results as? [PFObject]! {
for result in results {
self.profile = result
}
}
}
問題はこの行にあります。profileQuery.whereKey( "user"、equalTo:object)しかし、あなたはオブジェクトであることを共有していないので、とにかく難しいです... –
返信ありがとう!オブジェクトは、私が以前にアプリケーションで実行した別のクエリの結果です。私はそれを含めなかったので、人々を混乱させない。 objectはUserテーブルのPFUserです。だから私の希望は、そのユーザーのUserProfileを取得する別のクエリを実行することです(そのユーザーはクエリ内でここでオブジェクトと呼ばれています)。 – winston