2016-03-27 14 views
0

İlgili Kullanıcı tablosuna işaret eden bir İşaretçi sütununa (kullanıcı) sahip olan bir UserProfile tablom var. Kullanıcı nesnesi için UserProfile'ı kaplayan basit bir sorgu oluşturmaya çalışıyorum. Ancak, sorgu (benim app nesne = kullanıcı nesne) nil dönüyor:Ayrıştırma sorgulama döndürme değeri nil döndürme

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 
          } 
         } 
        } 

bu sorgu neden çalışmadığını bilen var mı? Teşekkürler!

Mazel çözüm kullanarak Güncelleme kod:

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 
          } 
         } 
        } 
+0

buradaki profilde profil varQuery.whereKey ("user", equalTo: object) ancak neyse söylemek istediğiniz nesnenin ne olduğunu söylemediniz ... –

+0

Cevabınız için teşekkürler! nesne, uygulamada daha önce çalıştırdığım başka bir sorgunun sonucudur. Ben dahil etmedim, bu yüzden insanları karıştırmaz. Nesne, Kullanıcı tablosundan bir PFUser'dir. Bu yüzden umarım bu kullanıcının UserProfile'ını alan başka bir sorguyu çalıştırmaktır (buradaki kullanıcı sorgumda nesne olarak adlandırılır). – winston

cevap

0

belki işaretçi farklı saklanır, bu

profileQuery.whereKey("user", equalTo: PFObject(outDataWithClassName: "_User", objectId: "\(object.objectId!)")) 

kullanmayı deneyin ve aynı zamanda bu çizgiyi profileQuery.includeKey ("kullanıcı") kaldırabilirsiniz

+0

Teşekkürler! Ne yazık ki hala ölümcül hata alıyorum: sorgu sonuçlarına ulaştığında bir Opsiyonel değer unw un while un un un un un un un un un un un un un un un un un un un un Sorumu en son kodla güncelledim. Xcode beni "outDataWithClassName" – winston

+0

için "outDataWithClassName" olarak değiştirdi ve nesneyi isteğe bağlı olup olmadığını değil, nesneyi değiştirmeyi deneyin! .objectId!, Ve ben de xcode'u kontrol ettim ve aynı zamanda outDataWithClassName için değiştirdim ... –

+0

isteğe bağlı gibi görünüyor. Sorumu güncellendi. Nesneyi ele geçiren diğer sorguyu ekledim, böylece neler olup bittiğine dair daha iyi bir fikre sahip olursunuz (anladığım kadarıyla çok fazla bilgi olmadan desteklemesi zor). Umarım bu yardımcı olur – winston

İlgili konular