2016-03-17 41 views
-2

我在我的集​​合视图控制器的viewDidLoad中调用以下函数。我试图从我的分析服务器的用户类中检索一个值。我的问题是没有调用for循环,它不允许从列中检索字符串值并将其存储在数组中。For循环未在查询函数中调用

func loaduuid(){ 
    let query = PFQuery(className: "_User") 

    query.whereKey("uuid", equalTo: guestname.last!) 
    query.findObjectsInBackgroundWithBlock ({ (objects:[PFObject]?, error:NSError?) -> Void in 
     if error == nil { 
      print("no error") 

      for object in objects!{ 

       // add found data to arrays 

       self.newuuid.append(object.valueForKey("uuid") as! String) 
       print("uuid added") 

      } 
     } 
     else { 
      print(error?.localizedDescription) 
     } 
    }) 
} 

为什么我的for循环没有被调用,我该如何解决这个问题?

+2

如果未执行for object for循环for'!',则这意味着'objects'数组是空的。就像Paulw所说的那样,因为没有uuid和guestname.last'一样。但为什么猜测?你有一个美妙的调试器。 _Debug!_遍历代码,以便您可以看到代码执行的路径以及像'objects'这样的变量的值。看看代码的作用和原因。解决你自己的问题。 – matt

+0

正如马特所说,调试,但我的猜测是没有匹配。列名称“UUID”包含姓氏会很奇怪 – Paulw11

回答

0

您应该尝试使用print(objects!.count)来查看PFObjects数组是否为空,这可能是为什么不遍历数组。如果打印0,则表示您的查询在服务器上未找到任何结果。

0

如果用户在您登录必须从本地设备_user类他行的每一个信息,你可以用

let uuid = PFUser.currentUser()!["uuid"] as! String 

访问,或是否有_user行一些更新后的值,你可以使用

PFUser.currentUser()?.fetchInBackgroundWithBlock...