如何在离线时创建Parse对象上存在的PFObject

时间:2016-01-13 18:28:08

标签: ios parse-platform

我使用CoreData作为应用程序的主数据库,并且仅针对我无法发送到Parse的对象解析本地数据库(引脚):因为Internet问题而创建新的或更新旧的。 问题是 - 如果我想在Parse I中更新对象,则在获取此对象时获取此对象 - 更新一些数据,然后再次保存。但是如果我尝试离线更新PFObject会怎么样?   如何创建PFObject,它将在Internet上更新Parse中的同一个对象?我用这个:

 PFObject *parseObj = [PFObject objectWithClassName:@"MyClass"];

 if ([self isLocalID:[managObj valueForKey:@"id"]]) {
         parseObj.objectId = [managObj valueForKey:@"id"];
 }

它运行良好(在线或离线发送到Parse或固定),但我不时会收到此错误:行Attempted to change an objectId to one that's already known to the OfflineStore.上的parseObj.objectId = [managObj valueForKey:@"id"];我认为这个原因错误 - Parse本地数据存储区已经有一个我试图设置的objectId对象,但在创建新的PFObject之前我从本地数据存储区同步查询:

PFQuery *query = [PFQuery queryWithClassName:updateObj.entity.name];
        [query fromLocalDatastore];
        [query whereKey:@"localID" containedIn:arrObjsLocalIDs];

        NSArray *objects =  [query findObjects];
        if (objects.count > 0) {
           // Send this array to Parse
        }
        else {
          // Created PFObjects
        }

当我使用

  parseObj = [PFObject  objectWithoutDataWithClassName:@"MyClass" 
objectId:[managObj valueForKey:@"id"]];

object doesn't pinned

我这几天都在努力解决这个问题,我做错了什么?

修改 我想我发现了一个问题。在发送给Parse之前我保存了对PFObject的引用(如果应用程序被杀了我将其固定),并且之后没有。

0 个答案:

没有答案