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]更容易访问托管对象上下文代码>