我在核心数据中保存了3个实体。我在应用程序中的几个视图控制器中加载它们 - 有时从所有3加载数据。下面是我如何加载此数据并将其分配给数组。一旦它在数组中,然后根据应用程序的当前页面进行排序,过滤,计数或我需要做的任何事情。
if (managedObjectContext == nil)
{
managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
[request setReturnsObjectsAsFaults:NO];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil)
{
// Handle the error.
NSLog(@"mutableFetchResults == nil");
}
[self setEventsArray:mutableFetchResults];
我遇到的问题是:
那么,有没有办法使用eventId = [NSString stringWithFormat:@"%@", currentEventId]
OR(可能更合适)有一个单独的类,可在应用程序启动时加载数据。然后我可以访问用于当前页面的类数组(加载的数据)。然后,如果我保存,编辑或删除对象,只需重新加载数据。
非常感谢任何帮助。
答案 0 :(得分:1)
你的第一个问题,你应该看看MagicalRecord将Ruby on Rails的Active Record带到CoreData。它将缩短您的核心数据代码。
请注意,如果您的图片不小,您应该将它们存储在与您的主要实体有关系的单独实体上。这应该可以帮助您解决滞后问题,因为只有当您明确要求时才会通过关系加载图像。你可以看到here Marcus Zarra的答案(写了一本关于核心数据的好书)。总有一个选项可能是您的图片对于核心数据来说太大了。
希望有所帮助