仅从 Parse 中获取不同的数据

Fetching only different data from Parse

我正在尝试更新 PFObjects 的数组。根据我的理解,fetchAll()(在其异步派生中)是更新所有对象的正确方法,因为 fetchAllIfNeeded() 只会更新尚未关联数据的 PFObjects。但是,每次执行 fetchAll() 时,都会再次下载 PFObjects 的整个列表,无论是否进行了任何更改。例如,如果我有一个 post 的列表,并且我想检查是否对 post 进行了任何编辑,在每种情况下,它们中的所有 post完整的(文本、图片等)将被下载,无论一个 post 的文本是否被简单地编辑,或者即使根本没有任何编辑。下载一个 PFObject 的一个属性的文本和下载整个数组,其中很多包括图片,在数据消耗上有很大的不同,所以我想找到一种只下载更改的方法。这可能吗?

此外,如果可能的话,有没有办法获得需要更新的 PFObjects 的列表?即,如果 posts 4 和 12 需要从 20 的数组中更新,我怎么知道呢?

谢谢。

fetchAll 顾名思义 - 获取所有对象。您可以对 updatedAt 列使用 PFQuery 来检索自某个 date/time 以来已更新的对象。您需要在本地跟踪上次更新 date/time,例如使用 NSUserDefaults -

let query=PFQuery.queryWithclassName("MyClass")

let defaults=NSUserDefaults.standardUserDefaults()

if let lastUpdateDate=defaults.objectForKey("lastUpdateDate") as? NSDate {
    q.whereKey("updatedAt",greaterThan:lastUpdateDate)
}

q.findObjectsInBackgroundWithBlock({(objects:[AnyObject]!, error: NSError!) in
        if(error == nil) {

            defaults.setObject(NSDate(),forKey:"lastUpdateDate") 

            for object in objects {
              ...
            }
        } else {
            //Do something with error
        }
})