Iphone 如何在类之间使用核心数据?

Iphone 如何在类之间使用核心数据?,iphone,objective-c,core-data,Iphone,Objective C,Core Data,我只是在学习核心数据,主要是应对,但在思考如何实现它时有点困难 我想在整个应用程序中访问相同的核心数据。从多个类访问它的最佳方式是什么?建议将其作为全局变量(在面向对象编程中通常不建议),还是在类之间将其作为实例变量传递?将NSManagedObjectContext实例传递给下一个类,或者如果您只需要处理一个对象,则将NSManagedObject实例传递给下一个类 就像在Xcode核心数据模板中一样 核心数据模型将在整个应用程序中提供。您可以通过应用轻松访问托管对象。您只需要创建一个AppD

我只是在学习核心数据,主要是应对,但在思考如何实现它时有点困难


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

NSManagedObjectContext
实例传递给下一个类,或者如果您只需要处理一个对象,则将
NSManagedObject
实例传递给下一个类


就像在Xcode核心数据模板中一样

核心数据模型将在整个应用程序中提供。您可以通过应用轻松访问托管对象。您只需要创建一个
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。在需要的其他视图控制器中,使用
单例
(或任何方便的方法)模式传递名称对象。

查看库。它不仅使许多常见的获取请求更加简洁,而且通过使用
[NSManagedObjectContext defaultContext]更容易访问托管对象上下文