我存儲的對象以標準方式解析本地數據存儲:解析存儲本地數據存儲對象以緩存並清除它們?
[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."
我以爲本地數據存儲和緩存是2個完全不同的存儲機制?然而,似乎我的數據被保存到緩存中,然後被刷新。這怎麼可能?本地數據存儲是沒有多大用處,如果它被沖刷掉我的控制...
UPDATE
我認爲它最初是因爲我訪問本地數據存儲,而在後臺寫它,因此得到沒有結果。但是把我的釘在主線程上並不能解決這個問題。
然後,我認爲這可能是一個遞歸固定的bug,因爲我的對象包含指針指向對象的指針。但是明確固定所有指針不會有幫助 - 無論是在後臺還是在主線程中。
我試着只是查詢沒有includeKey的對象,我認爲這意味着一致的返回,但是需要檢索剩餘數據的輔助查詢對於我正在嘗試執行的操作來說有點慢。
最後,我認爲它可能是做this bug
寫任何新數據顯示,除去所有先前的固定數據...
確實,本地數據存儲和緩存是互斥的。我不知道你爲什麼會失去物體。 – Daniel
不完全確定這是否是原因,但可能是某些對象尚未被提取。這是來自api文檔「如果這些其他對象還沒有從Parse中提取,它們將不會被存儲。」https://parse.com/docs/ios/api/Classes/PFObject.html#//api/name/pinInBackgroundWithName: – Yan
嗯,對象本身,不僅僅是它引用的對象,甚至沒有被存儲。而且我知道這些物體已被取出,因爲我可以看到它們的屬性正確顯示。事情是,對象存儲和檢索得很好,直到出於某種原因它們似乎被擦除。或者至少查詢搜索緩存,而不會返回任何內容... – Smikey