我刚刚在学习核心数据,主要是应对,但在思考如何实现它时遇到了一些麻烦。如何在类之间使用Core Data?
我想从整个我的应用程序访问相同的核心数据。从多个类访问它的最佳方式是什么?建议将它作为全局变量(通常不推荐用于面向对象的编程),或者将它作为类间的实例变量传递?
我刚刚在学习核心数据,主要是应对,但在思考如何实现它时遇到了一些麻烦。如何在类之间使用Core Data?
我想从整个我的应用程序访问相同的核心数据。从多个类访问它的最佳方式是什么?建议将它作为全局变量(通常不推荐用于面向对象的编程),或者将它作为类间的实例变量传递?
核心数据模型将在整个应用程序中可用。您可以轻松访问您的应用程序中的托管对象。你只需要创建一个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
(或任何方便的方法)图案名对象,在需要它的其他视图控制器。
通过NSManagedObjectContext
实例,或者如果您只需要处理一个对象的实例,就可以转到下一个类。
就像在Xcodes Core Data模板中完成的一样。
查看MagicalRecord库。它不仅使许多常见获取请求更加简洁,而且还使得访问受管对象上下文更简单,只需使用[NSManagedObjectContext defaultContext];