Ich postete dies auf den Apple Dev Foren hier, da es sich mir wie ein Bug im eigentlichen SDK anfühlt, aber ich dachte, ich würde es hier auch posten und sehen, ob irgendjemand könnte überprüfen, ob ich dieses Ding falsch benutze oder nicht (scheint nicht so) oder das ist ein gebrochenes Verhalten.NSFetchedResultsSectionInfo stimmt nicht mit sich selbst überein, wie viele Objekte es hat
https://devforums.apple.com/thread/72738
-
Nach einem wenig zu verbringen, während einiger Code debuggen, habe ich ein sehr seltsames und beunruhigendes Verhalten einer Instanz NSFetchedResultsSectionInfo
entdeckt.
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]);
Grundsätzlich packe ich einen FRC, dann ziehen Sie eine der sectionInfo aus ihm Objekte (dagegen tun sich keine Sorgen, warum ich für den Index Wegposition bin Grabbing 1 statt 0 ... es sollte nicht Materie hier). Das Interessante daran ist, dass die NSLog Ausgabe für die darüber ist:
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)`
So ist die [sectionInfo objects]
Array hat zwei Dinge drin, aber [sectionInfo numberOfObjects]
berichtet, dass es nur eine hat. Um die Möglichkeit eines Caching-Problems auszuschließen, habe ich vor der Ausführung dieses Codes das gesamte Caching im FRC-Setup deaktiviert.
Ziemlich ratlos hier. Ich weiß nicht, wie ein einzelnes sectionInfo-Objekt mit sich selbst widersprechen kann, wie viele Objekte es enthält.
Irgendwelche Ideen von den Apple Entwicklern? Ausführen von XCode 3.2.4 und dem 4.1 SDK.
Edit: FYI das richtige Objekt für diesen Abschnitt ist eigentlich die erste (TBN.B) so in meinen Tests so weit scheint es, dass, wenn Sie nur den Teil des Arrays Objekte betrachten bis zu numberOfObjects
dann Sie bekommen die richtigen Ergebnisse. Trotzdem neugierig, warum das Extra-Objekt am Ende des Arrays erscheint, wenn es nicht Teil dieses Bereichs ist.
Das könnte ich mit dem Thema in Beziehung gesetzt werden: http://stackoverflow.com/questions/10619750/nsfetchedresultscontroller-trying-to-limit-number-of-records-displayed einen Link sehen? – trapper