Ich schreibe eine Coredata basierte iPhone App, die Rezepte anzeigt. Um die Leistung zu verbessern, wenn ich sie in einer TableView anzeigen möchte, möchte ich die Stapelverarbeitung aktivieren (-setFetchBatchSize :) und nur das Attribut "name" abrufen (-setPropertiesToFetch :). Wenn ich beides einschalte, funktioniert es nicht und die Liste ist leer. Sobald ich eine der im folgenden Code markierten Zeilen auskommentiere, funktioniert es einwandfrei.Coredata auf iPhone, setFetchBatchSize & setPropertiesToFetch in einer Anfrage
Was fehlt mir hier? Ist es unmöglich, beides zu haben?
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Rezept" inManagedObjectContext:chk_context]];
// *snip*
//BATCHING
[fetchRequest setFetchBatchSize:25];
NSDictionary *entityProperties = [[NSEntityDescription entityForName:@"Rezept" inManagedObjectContext:chk_context] propertiesByName];
//PROPERTIES
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"name"]]];
Das CoreData-Debugframework funktioniert nur auf dem Desktop, nein? Ich dachte nicht, dass es eine iPhone-Version des Debug-Frameworks gibt. – Hunter
Ich spreche nicht über Debug-Frameworks. Ich sage, setze eine Umgebungsvariable oder einen Standard, um eine zusätzliche Protokollierung im normalen CoreData-Framework auszulösen. –
Wil, hast du das eigentlich am Telefon arbeiten lassen? Ich hatte kein Glück, und diese Person schlägt vor, dass es ein bekannter Fehler ist: http://stackoverflow.com/questions/822906/how-do-i-get-the-coredata-debug-argument-to-output-to -the-console –