如何检索存储在PFUser.currentUser()下的PFObjects的自定义子类的数组

时间:2015-05-15 11:00:27

标签: ios swift parse-platform

我正在努力检索我存储在PFUser.currentUser()上的PFObject数组

我有一个PFObject的自定义子类:UNUser

以下是我如何保存名为favoriteDrivers的[UNUser]数组:

if let currentUser = PFUser.currentUser() {
  currentUser["favoriteDrivers"] = favoriteDrivers
  currentUser.saveInBackgroundWithBlock({ (succes: Bool, error: NSError?) -> Void in
    if succes {
    }
  })
}

如果我检索这样的条目:

if let currentUser = PFUser.currentUser() {
    var objects = currentUser["favoriteDrivers"]

println(objects)在控制台中显示此信息(此试用版中的数组只有一个条目):

Optional(("<UNUser: 0x174138920, objectId: mEgJALLLA9, localId: (null)> {\n}"))

现在获取引用的PFObject并将它们存储在UNUser数组中的最佳方法是什么?

这就是我的尝试:

  var relation = currentUser.relationForKey("favoriteDrivers")
    relation.query()!.findObjectsInBackgroundWithBlock{ ( objects: [AnyObject]?, error: NSError?) -> Void in
      if error == nil {
        let favoriteDrivers = objects as? [UNUser]

1 个答案:

答案 0 :(得分:2)

您正在设置数组,因此您需要读取数组,而不是关系。

您的数组实际上是一个指针数组,这正是您想要的,但您确实需要确保您拥有这些指针的所有数据(默认情况下)(正如您在日志中看到的那样)获取类类型和对象ID。

为此,获取数组,然后使用数组调用fetchAllIfNeededInBackground:block:。这将使用来自服务器的当前数据更新数组中需要它的任何对象。这有点像你的关系查询...