【问题标题】:Parse returning empty array in Swift when array has data当数组有数据时,在 Swift 中解析返回空数组
【发布时间】:2015-11-08 16:37:29
【问题描述】:

我正在尝试从我的 Swift 应用程序中的 Parse.com 数据库中获取一个数组。由于某种原因,返回的数组始终为零。我检查了权限以确保我的应用可以访问数据,我发现很难找到这个错误的起点。

这是我的代码:

    let username = PFUser.currentUser()?.objectId
    print("username: \(username)")
    let bannedUsers = PFUser.currentUser()!["bannedUsers"] as? NSArray
    print("bannedUsers: \(bannedUsers)")

日志输出:

    username: Optional("Nmmtb07PoR")
    bannedUsers: nil

来自数据库的屏幕截图显示数组不为零:

数组的确切值:

[{"__type":"Pointer","className":"_User","objectId":"mG33sM3fcC"}]

我尝试处理数组的内容,但无论我在其中放入什么,无论是指针还是字符串,我总是得到'nil'。我希望你能帮忙。

【问题讨论】:

    标签: ios arrays swift parse-platform swift2


    【解决方案1】:

    已解决:

    我加了一行

    PFUser.currentUser()?.fetch()
    

    这刷新了用户,我得到了正确的数据而不是“nil”。如果您以后遇到类似问题,希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      怎么样:

      let bannedUsers = PFUser.currentUser()!.bannedUsers as? NSArray
      

      【讨论】:

      • 我得到“'PFUser' 类型的值没有成员 'bannedUsers'”编译器错误
      【解决方案3】:

      尝试使用:PFUser.currentUser()!.objectForKey("bannedUsers")

      PFUser.currentUser()!.valueForKey("bannedUsers")

      您的列可能不包含在 currentUser 对象中,因此您必须查询用户并包含被禁止的用户列。 您可以通过以下方式做到这一点:

      let query = PFUser.query()
      query?.includeKey("bannedUsers")
      do {
       let user = try query?.getObjectWithId((PFUser.currentUser()?.objectId)!)
       let bannedUsers = user?.valueForKey("bannedUsers")
       print(bannedUsers)
      } catch {
        print(error)
      }
      

      【讨论】:

      • 在这两种情况下都返回“nil”
      • 好的,这意味着指针不包含在您当前的用户中,您可以试试这个 PFUser.currentUser()!.valueForKey("bannedUsers").fetch()
      • 致命错误:在展开可选值时意外发现 nil
      • 我添加了一些额外的列 - 一个新的数组列和一个字符串列,在这两种情况下我也得到一个“nil”。在我看来,由于某种原因,我根本无法访问用户值
      • 我已经解决了这个问题——你对 fetch() 的想法是对的,只是我必须对用户执行 fetch(),而不是值。更改后的答案可能很好,但在我的情况下不会这样做 - 我将数据用作另一个查询的一部分,但不想加入两个查询。不过,感谢您的帮助,如果没有 fetch() 的想法,我就不会这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 2011-02-14
      相关资源
      最近更新 更多