Ho postato questo sui forum di Apple Dev qui poiché mi sembra un errore nell'SDK effettivo, ma ho pensato di pubblicarlo anche qui e vedere se qualcuno potrebbe verificare se sto usando questa cosa in modo non corretto (non sembra come) o questo è un comportamento rotto.NSFetchedResultsSectionInfo non concorda con se stesso su quanti oggetti ha
https://devforums.apple.com/thread/72738
-
Dopo aver trascorso un po 'durante il debug del codice, ho scoperto un comportamento molto strano e preoccupante di un'istanza di NSFetchedResultsSectionInfo
.
NSFetchedResultsController *frc = [self frcForTableView:tableView];
id <NSFetchedResultsSectionInfo> sectionInfo = [[frc sections] objectAtIndex:
[indexPath indexAtPosition:1]];
NSLog(@"Looking at %@ with section %@ (%d objects)",
indexPath, [sectionInfo objects], [sectionInfo numberOfObjects]);
Fondamentalmente, io afferrare un FRC, quindi tirare uno dei sectionInfo oggetti fuori di esso (non ti preoccupare perché sto prendendo per l'indice posizione percorso 1 invece di 0 ... non dovrebbe importa qui). La cosa interessante è che l'uscita NSLog per quanto sopra è questo:
Looking at <NSIndexPath 0x8828ee0> 2 indexes [0, 0] with section (
"TBN.B x 1 for order 1187",
"TBN.T x 1 for order 1187"
) (1 objects)`
Così l'array [sectionInfo objects]
ha due cose in esso, ma [sectionInfo numberOfObjects]
rapporti che ha solo uno. Per eliminare la possibilità di un problema di memorizzazione nella cache ho disabilitato tutto il caching nella configurazione FRC prima di eseguire questo codice.
Abbastanza stanco qui. Non so come una singola sezioneInfo possa essere in disaccordo con se stessa su quanti oggetti ha in essa.
Qualche idea dagli sviluppatori Apple? Esecuzione di XCode 3.2.4 e 4.1 SDK.
Edit: FYI l'oggetto giusto per questa sezione è in realtà il primo (TBN.B) così nel mio test finora sembra che se si considera solo la parte della matrice oggetti fino a numberOfObjects
allora si ottiene i risultati giusti. Tuttavia, è ancora curioso di sapere perché l'oggetto extra appare alla fine dell'array quando non fa parte di quella sezione.
Questo potrebbe essere correlato al problema che stavo avendo: http://stackoverflow.com/questions/10619750/nsfetchedresultscontroller-trying-to-limit-number-of-records-displayed vedere un link? – trapper