繁体   English   中英

我如何在课程之间使用Core Data?

[英]How do i use Core Data between classes?

我只是在学习核心数据并且主要是应对,但是在思考如何实现它方面会遇到一些麻烦。

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

核心数据模型将在您的整个应用中可用。 您可以轻松地通过应用程序访问托管对象。 您只需要创建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实例传递给下一类,或者如果只需要处理一个对象,则将NSManagedObject实例传递给下一类。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM