gpt4 book ai didi

ios - 核心数据和多个实体

转载 作者:行者123 更新时间:2023-11-29 13:02:12 25 4
gpt4 key购买 nike

很难掌握核心数据的工作方式,我希望能在这里获得一些非常基本的帮助。

我有两个实体:

Profiles<-->>Events

我已经成功地弄清楚了如何通过谓词提取添加配置文件、在 TableView 中查看配置文件以及在 TableView 中查看配置文件的事件。

现在,这就是我迷路的地方。假设我想更新事件实体中的事件。在更新 Event 实体之前,我是否必须使用谓词进行提取以创建 Profiles 对象?或者我可以只更新事件实体并通过关系以某种方式告诉它它与哪个配置文件相关联吗?

这是我遇到的问题:

// add new event
//NSLog(@"Adding New Event");

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Events"];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY profile.profilename=[cd] %@",[self profilename]];

[fetchRequest setPredicate:predicate];

self.events = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

//insert event info
NSManagedObject *eventInfo = [NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:self.managedObjectContext];


///////// THIS IS WHERE I NEED HELP



}


// save the context
NSError *error = nil;
if (![managedObjectContext save:&error]){
NSLog(@"Error! %@",error);
}

我已经准备好创建一个平面文件并使用它了!这让我抓狂!

编辑 - 更改代码如下 *********** ************

// add new event
//NSLog(@"Adding New Event");

Events *newEvent = (Events *)[NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:managedObjectContext];
newEvent.eventdesc=self.eventDescTextField.text;


NSString *wkst = eventDescTextField.text;
NSNumber *wk = [NSNumber numberWithInteger: [wkst integerValue]];
newEvent.weeksout = wk;

现在我知道我需要告诉事件实体使用当前配置文件..我如何访问关系?

最佳答案

查看您提供的代码,我认为您对 Core Data 有误解。

看起来您正在尝试获取与配置文件相关的所有事件。您不需要为此创建 ond 执行提取请求。核心数据是一个对象图。这意味着如果您在托管对象上下文中有一个对象,您可以通过它的关系获取其相关对象,而无需运行获取请求。

关于ios - 核心数据和多个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com