Je travaille sur un projet de données de base qui communiquera avec mon iPad et envoyer des données de base arrière. J'ai la plupart du temps compris la partie de réseau mais j'ai des problèmes avec obtenir une demande de fetch simple pour se comporter. Voici la requête d'extraction:Une demande de récupération qui n'est pas aller chercher
NSManagedObjectContext *context=[[[NSDocumentController sharedDocumentController] currentDocument] managedObjectContext];
//NSManagedObjectContext *context=[self managedObjectContext];
if (context == nil){
NSLog(@"Crap");
}
NSLog(@"Context: %@",context);
//fetch request: (found here: http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Articles/05_Fetching.html)
NSLog(@"Starting to fetch:");
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Song" inManagedObjectContext:context];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"cueNo" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSError *error;
NSMutableArray *mutableFetchResults = [[context executeFetchRequest:request error:&error] mutableCopy];
Si j'utilise ceci:
NSManagedObjectContext *context=[[[NSDocumentController sharedDocumentController] currentDocument] managedObjectContext];
Je reçois une erreur qui dit:
+entityForName: could not locate an NSManagedObjectModel for entity name 'Song'
Si j'utilise ceci:
NSManagedObjectContext *context=[self managedObjectContext];
mutableFetchResults revient null même si j'ai d ata dans l'entité Song.
Je copié cette demande directement à partir de la chercher la version précédente en utilisant la première méthode pour définir le contexte et il a bien fonctionné là-bas.
Toute aide serait grandement appréciée!
Dépannage:
Printing description of persistentStoreCoordinator:
Printing description of _managedObjectModel:
(<NSManagedObjectModel: 0x1001c5250>) isEditable 0, entities {
Song = "(<NSEntityDescription: 0x100149ba0>) name Song, managedObjectClassName NSManagedObject, renamingIdentifier Song, isAbstract 0, superentity name (null), properties {\n cueName = \"(<NSAttributeDescription: 0x1001c5600>), name cueName, isOptional 1, isTransient 0, entity Song, renamingIdentifier cueName, validation predicates (\\n), warnings (\\n), versionHashModifier (null), attributeType 700 , attributeValueClassName NSString, defaultValue (null)\";\n cueNo = \"(<NSAttributeDescription: 0x1001c5570>), name cueNo, isOptional 1, isTransient 0, entity Song, renamingIdentifier cueNo, validation predicates (\\n), warnings (\\n), versionHashModifier (null), attributeType 700 , attributeValueClassName NSString, defaultValue (null)\";\n}, subentities {\n}, userInfo {\n}, versionHashModifier (null)";
}, fetch request templates {
newFetchRequest = "<NSFetchRequest: 0x1001c5420> (entity: Song; predicate: (cueNo < \"0\"); sortDescriptors: (null); limit: 0)";
}
Printing description of _managedObjectContext:
<NSManagedObjectContext: 0x1001c5890>
Merci beaucoup! J'ai vérifié et je n'avais pas de coordinateur ou de maman. Je fais maintenant et le modèle contient l'entité de la chanson. Cependant, je ne sais pas trop comment lier le contexte au modèle. Toute aide serait grandement appréciée. –
J'ai fait plus de dépannage aujourd'hui.J'ai finalement été fatigué de ne pas obtenir de résultats de mon fetch et ajouté des données par programme. J'ai finalement obtenu le résultat dont j'avais besoin mais j'ai révélé le problème que IB n'est pas connecté correctement. Une idée de ce que je peux faire pour suivre ce problème? –
J'ai parcouru le fetch et j'ai imprimé une description de la variable "error" J'ai obtenu ceci: Impression de la description de l'erreur: NSDocument Si je vous comprends correctement, il n'y aurait qu'un problème si cette variable était inexacte? –