2009-08-20 135 views
0

我想开发一个测试核心数据应用程序,所以我可以在我的主应用程序中使用它。但即时通讯有问题获取存储的数据。核心数据NSFetchRequest问题

我有一个实体“用户”有两个属性:名称(字符串)&电子邮件(字符串) 我可以成功地填充我的数据存储文件... 这里是使用下面的代码IM。 任何帮助将不胜感激。

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:@"[email protected]" 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

固定 - 如果拆分出来的零件到单独的方法,它的所有作品:)