gpt4 book ai didi

ios - 如何使用 swift 从 Parse 上的用户指针检索数据

转载 作者:行者123 更新时间:2023-11-29 01:28:45 24 4
gpt4 key购买 nike

在 Parse 上,我有用户使用 Facebook 个人资料和电子邮件登录个人资料。所以我想在我的类似 Twitter 的应用程序中为用户埋葬数据。

在我的 "messages" Parse 类中,我有 column "sender" 包含要解析的pointers用户。

我只想检索并显示 "messages" 类中的用户名 "sender" 列中包含指向我需要数据的 PFUsers 的指针 key

  • “名字”
  • “姓氏”
  • “个人资料_图片”

我怎样才能检索他们的数据(例如名称和图像)以便在表格 View 中显示它们?

这些是我的数组的声明:

var sendersArray : [String] = []
var picturesArray : [NSData] = []

也许我可以使用像这样的元组,但我不明白如何从指针中获取数据

for user in list  {

let firstName = "fist_name"
let lastName = "last_name"
let oProfileImage = NSData() //"image_profile" as! NSData

otherUsers.append((oName: firstName, oLastName: lastName, oImageProfle: oProfileImage))

}

版本 - 1:

我开始打印整个 pf 对象

//******************************************************

func theSearch() {



let theSearchQuery = PFQuery(className: "Messages")


theSearchQuery.findObjectsInBackgroundWithBlock({
(objects : [AnyObject]?, error : NSError?) -> Void in

for object in objects! {

let theName = object.sender!

print(object)
print(theName)

sendersArray.append(theName)

let profilePicture = object["profile_pic"] as! PFFile
picturesArray.append(profilePicture)

}

self.tableView.reloadData()

})

}
//*******************************************************

版本 - 2:

然后,找到了这个解决方案,但仍然没有

func theSearch() {



let theSearchQuery = PFQuery(className: "Messages" )

theSearchQuery.includeKey("sender")

theSearchQuery.findObjectsInBackgroundWithBlock({
(objects : [AnyObject]?, error : NSError?) -> Void in

for object in objects! {

let theName = object.sender!["first_name"] as? String

print(object)
print(theName)

sendersArray.append(theName)

let profilePicture = object["profile_pic"] as! PFFile
picturesArray.append(profilePicture)

}

self.tableView.reloadData()

})

}

错误:

enter image description here

好像是sender的问题,可能我不该用

enter image description here

提前致谢

最佳答案

  let theName = object.objectForKey("sender")!.objectForKey("first_name") as! String

完整代码:

   func theSearch() {



let theSearchQuery = PFQuery(className: "Messages")

theSearchQuery.includeKey("sender")
theSearchQuery.findObjectsInBackgroundWithBlock({
(objects : [AnyObject]?, error : NSError?) -> Void in

for object in objects! {

let theName = object.objectForKey("sender")!.objectForKey("first_name") as! String

print(object)
print(theName)

self.sendersArray.append(theName)

let profilePicture = object["profile_picture"] as! PFFile
self.picturesArray.append(profilePicture)

}

self.tableView.reloadData()

})

}

此外,您的 picturesArray 应该是 PFFile 类型,如下所示:

 var picturesArray = [PFFile]()

不是 NSData。在类里面改变这一点。

-----编辑-----:如果您想从解析查询中检索图像,请执行以下操作:

1) 在您的类的顶部,声明以下数组来存储结果:

    // your images will be stored in the file array
var fileArray = [PFFile]()

// your first and last names will be stored in String Arrays:
var firstNameArray = [String]()
var lastNameArray = [String]()

2) 执行查询:

   let query1 = PFQuery(className: "_User")
query1.orderByDescending("createdAt")
query1.findObjectsInBackgroundWithBlock({
(objects : [AnyObject]?, error : NSError?) -> Void in
if error == nil {
for x in objects! {
let firstName = x.objectForKey("first_name") as! String
let lastName = x.objectForKey("last_name") as! String
self.firstNameArray.append(firstName)
self.lastNameArray.append(lastName)

if x.objectForKey("profile_picture") as? PFFile == nil {
print("do nothing cause it's nil")
}
else {
let file:PFFile = x.objectForKey("profile_image") as! PFFile
self.fileArray.append(file)
}


}
self.tableView.reloadData()

}

})

请注意,我使用的是 Swift 2 和 Xcode 7。Xcode 6.4 和 Swift 1.2 中的语法略有不同。

关于ios - 如何使用 swift 从 Parse 上的用户指针检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com