我以标准方式将对象存储到 Parse 本地数据存储区:
[someObject pinInBackgroundWithName:someName];
通常,这可以正常工作。但是,有时当我进行本地查询时,即
PFQuery *query = [SomeObject query];
[query fromLocalDatastore];
[query fromPinWithName:someName];
[query findObjectsInBackgroundWithBlock:block];
似乎没有本地对象,我收到错误:
error NSError * domain: @"Parse" - code: 120
我的理解是:
"Error code indicating the result was not found in the cache."
我认为本地数据存储和缓存是两种完全不同的存储机制?然而,似乎我的数据被保存到缓存中,然后被刷新。这怎么可能?如果本地数据存储区被冲出我的控制范围,它就没有多大用处......
更新
我最初认为这是因为我在后台写入本地数据存储时正在访问它,因此得到 nil 结果。但是将我的固定放在主线程上并不能解决这个问题。
然后我认为这可能是递归固定的错误,因为我的对象包含指向带有指针的对象的指针。但是明确地固定所有指针并没有帮助——无论是在后台还是在主线程中。
我尝试只查询没有includeKey的对象,我认为这意味着一致的返回,但是检索剩余数据所需的辅助查询对于我正在尝试做的事情来说有点慢。
最后,我认为这可能与这个错误有关
写入任何新数据似乎都会删除所有以前固定的数据......