Основная проблема NSFetchRequest данных - PullRequest
0 голосов
/ 20 августа 2009

Я пытаюсь разработать тестовое приложение Core Data, чтобы использовать его в своем основном приложении. Но у меня проблемы с извлечением сохраненных данных.

У меня есть 1 объект "Пользователь" с 2 атрибутами: имя (строка) и адрес электронной почты (строка) Я могу успешно заполнить файл моего магазина данными ... Вот код, который я использую ниже. Любая помощь будет принята с благодарностью.

NSManagedObjectContext *managedObjectContext;
NSError *error;

NSString *basePath = @"/Users/Jamie/Desktop";
NSURL *storePath = [NSURL fileURLWithPath: [basePath stringByAppendingPathComponent:@"datastore.xml"]];

NSLog(@"Data Store path: %@", storePath);

NSPersistentStoreCoordinator *persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:nil]];
if(![persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType configuration:nil URL:storePath options:nil error:&error]) {
    NSLog(@"Unable to load Core Data Store");
    NSLog(@"ERROR: %@", error);
    return 1;
} else {
    NSLog(@"Loaded Core Data Store");
}

managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:persistentStoreCoordinator];

// Add data to store.
/*
NSManagedObject *mo = [NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:managedObjectContext];
[mo setValue:@"jamie" forKey:@"name"];
[mo setValue:@"jamie@domain.com" forKey:@"email"];
if([managedObjectContext save:&error]) {
    NSLog(@"Saved data to store");
} else {
    NSLog(@"Unable to save data to store");
    NSLog(@"ERROR: %@", error);
}
*/

// Fetch all the data - not worrying about using a predicate.
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"User" inManagedObjectContext:managedObjectContext];   
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];

NSArray *results = [managedObjectContext executeFetchRequest:request error:&error];

1 Ответ

1 голос
/ 20 августа 2009

Исправлено - если вы разделяете части на отдельные методы, все это работает:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...