swift解析查询如何为每个用户名获取第一个createdAt?
如何为每个用户名获取createdAt的第一行 例如:后端看起来像这样swift解析查询如何为每个用户名获取第一个createdAt?,swift,parse-platform,Swift,Parse Platform,如何为每个用户名获取createdAt的第一行 例如:后端看起来像这样 objectId- username - photo - createdAt 5135Aer - name1 - image - 2015-08-21 R35AAA - name6 - image - 2015-08-21 G7356W - name3 - image - 2015-08-20 E355B - n
objectId- username - photo - createdAt
5135Aer - name1 - image - 2015-08-21
R35AAA - name6 - image - 2015-08-21
G7356W - name3 - image - 2015-08-20
E355B - name1 - image - 2015-08-20
因此,我希望查询将获取所有行并跳过name1,即createdAt 2015-08-20最后一行,因为这一旧行我只希望每个用户都有新的createdAt行
let query = PFQuery(className: "test")
query.whereKey("receivers", equalTo: PFUser.currentUser()!.username!)
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock {
(objects, error) -> Void in
if error == nil {
self.createdAtArray = objects!
print(objects!.count)
我尝试过这个查询,但它将使用旧的createdAt,我只希望每个用户都有新的createdAt,是的,我已将
限制设置为=1
,但它将显示不是每个用户的最后一条记录!它只显示一个结果。因此,从现在起每20分钟我都会要求提供最近的对象,因此如果您希望在50分钟或更长时间后查询图像,只需更改时间戳的值
let query = PFQuery(className: "test")
query.whereKey("receivers", equalTo: PFUser.currentUser()!.username!)
query.orderByDescending("createdAt")
var timeStamp = NSDate(timeIntervalSinceNow: -1200)
query.whereKey("createdAt", greaterThanOrEqualTo: timeStamp)
query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil
{
if let objects = objects as? [PFObject]
{
for one in objects
{
var Getimage = one["image"] as! PFFile
Getimage.getDataInBackgroundWithBlock({ (data:NSData?, error:NSError?) -> Void in
var image = UIImage(data: data!)
// you have the image now
createdAtArray.addObject(image!)
})
}
}
}
}
第二个选项:要从解析中获取最后一个对象,请使用**getFirstObject方法
func secondQuery(arraydetails:NSMutableArray){
var query = PFQuery(className: "")
query.orderByDescending("createdAt")
query.limit = 1
query.getFirstObjectInBackgroundWithBlock { (object:PFObject?, error:NSError?) -> Void in
if error == nil
{
var detail = object?.objectForKey("text") as! String
arraydetails.addObject(detail)
}
}
}
你想做什么?那么你想只为每个用户创建新数据吗right@Lamar我希望得到最后一个用户的更新,比如显示他们最后的图像、消息等,我不希望他们的名字重复,我只希望每个用户的第一行createdAt。你能帮我吗?谢谢,但我不想这样的用户名重复,我只想为每个用户名一行我不想它是重复的,我不想计时器,我只想为每个用户创建第一个不重复的数据,请你能帮我吗?所以你试过这个代码。。。它还给了你什么?我试过了,我有重复的名字!是否有任何方法可以为每个用户获取第一个createdAt,而无需重复?有一列包含名称,例如:name1-message hello,name1-message bye,所以我想获取用户的第一个createdAt行。我想知道它是否工作。。。因此,在for in循环中创建一个objectid变量,如var objectid=one.objectid,然后创建if和else语句,查看objectid是否与自身不相等。。。如果objectID!=objectID,因此如果语句中添加图像检索代码**每行有不同的objectID,请看这张图片: