2012-03-28 28 views
0

我刚刚在学习核心数据,主要是应对,但在思考如何实现它时遇到了一些麻烦。如何在类之间使用Core Data?

我想从整个我的应用程序访问相同的核心数据。从多个类访问它的最佳方式是什么?建议将它作为全局变量(通常不推荐用于面向对象的编程),或者将它作为类间的实例变量传递?

回答

5

核心数据模型将在整个应用程序中可用。您可以轻松访问您的应用程序中的托管对象。你只需要创建一个AppDelegate类的实例。

例如说你已经存储了联系人。您可以在任何视图控制器中使用[managedObject valueForKey:@"name"]

1.创建一个实例的的appDelegate

self.theappDel=[[UIApplication sharedApplication] delegate]; 

2.获取的上下文中,获取请求和实体描述。

NSManagedObjectContext*context=[self.theappDel managedObjectContext]; 
NSEntityDescription*entity=[NSEntityDescription entityForName:@"Contacts" inManagedObjectContext:context]; 
NSFetchRequest*request=[[NSFetchRequest alloc] init]; 
[request setEntity:entity]; 
NSManagedObject*managedObject=nil; 
NSError*error=nil; 
NSArray*objectList=[context executeFetchRequest:request error:&error]; 

3.获得从所述阵列管理的对象。

if([objectList count]>0) 
managedObject=[objectList objectAtIndex:0]; 
NSLog(@"The name: %@",[managedObject valueForKey:@"name"]) 

4.传递使用singleton(或任何方便的方法)图案名对象,在需要它的其他视图控制器。

1

通过NSManagedObjectContext实例,或者如果您只需要处理一个对象的实例,就可以转到下一个类。

就像在Xcodes Core Data模板中完成的一样。

1

查看MagicalRecord库。它不仅使许多常见获取请求更加简洁,而且还使得访问受管对象上下文更简单,只需使用[NSManagedObjectContext defaultContext];

相关问题