2014-12-20 11 views
12

Ho una query con molti includeKeys che sono puntatori a un'altra classe. Dopo aver ricevuto i dati dal cloud di analisi, tutti i record vengono memorizzati localmente utilizzando il metodo pinAll. Quando riprendo i risultati memorizzati, riesco a ottenere i record ma non i puntatori inclusi. Vedere il codice di esempioDati puntatori non memorizzati nel database locale parse ios

[query includeKey:@"classOne.innerClass"]; 
[query includeKey:@"classTwo.innerClass"]; 
[query includeKey:@"classThree"]; 
[query includeKey:@"classFour"]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){ 
    [PFObject pinAllInBackground:objects withName:@"LocalRecords" block:^(BOOL succeeded, NSError *error) { 

    }]; 
}]; 

E sto andare a prendere i dischi come

PFQuery *lquery = [PFQuery queryWithClassName:[ClassName parseClassName]]; 
    [lquery fromPinWithName:@"LocalRecords"]; 
    BFTask *btask = [[lquery findObjectsInBackground] continueWithSuccessBlock:^id(BFTask *task) { 
     if (task.error) { 
      NSLog(@"Error: %@", task.error); 
      return task; 
     } 
    }]; 

Quando provo ad accedere a qualsiasi delle colonne in ClassOne, classTwo, classThree e classFour sto ottenendo un'eccezione terminazione app a causa dell'eccezione non rilevata "NSInternalInconsistencyException", motivo: il "nome chiave" non ha dati. Chiama fetchIfNeeded prima di ottenere il suo valore. '

+0

Prima di poter prelevare dal database locale, dovete dire la query dove deve guardare '[interrogazione fromLocalDatastore];' – jsetting32

+0

sto già usando questo ..... Nessuna fortuna – san

+0

mi interessa per saperne di più su questo problema. Quale versione dell'SDK iOS hai testato? – fatuhoku

risposta

1

Questo era un bug nella funzionalità di archivio dati locale Parse.com per iOS.

Dalle note di rilascio 1.6.3:

"migliorare la coerenza di archivio dati locale/parse query con includeKey:. E valori NSNull"

Problemi correlati