【发布时间】:2011-01-25 23:39:13
【问题描述】:
我正在尝试使用核心数据将 系列 的持久数据 (NSManagedObjects) 写入 sqlite,然后将该系列读入应用程序。我已经设法在单个会话期间写入和读取 single 记录,但是每次我重新加载应用程序时都不会加载以前的数据(并且 sqlite 管理器识别表但不识别表中的任何条目) .
这里是一些核心数据逻辑:
在 applicationDidFinishLaunching 中:我设置了 3 个控制器的 managedObjectContext 属性
inputControl.managedObjectContext = context;
reportControl.managedObjectContext = context;
logControl.managedObjectContext = context;
然后在inputControl中我添加Event NSManagedObjects,比如
[event setDateCreated:[NSDate date]];
在 logControl 中我阅读了事件日志
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateCreated" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
NSLog(@"Error fetching from DB");
}
int i;
NSLog(@"size of DB: %d",mutableFetchResults.count);
for (i=0; i<mutableFetchResults.count; i++)
NSLog(@"event %d: %@",i,[mutableFetchResults objectAtIndex:i]);
[mutableFetchResults release];
[request release];
当我运行此代码时,我看到“DB 大小:”始终设置为“1”。 managedObjectModel、managedObjectContext 和 persistentStoreCoordinator 以标准方式处理。
任何帮助将不胜感激
谢谢
佩曼
【问题讨论】:
-
sqlite 管理器在尝试查看 CoreData 存储的数据时根本不会帮助您。您将不得不使用 Core Data Editor (christian-kienle.de/CoreDataEditor) 之类的东西