gpt4 book ai didi

iphone - CoreData 对象更新问题

转载 作者:行者123 更新时间:2023-12-03 21:09:18 25 4
gpt4 key购买 nike

我有这个代码示例演示如何更新核心数据中的对象,但是我遇到了一个小问题:

// Retrieve the context
if (managedObjectContext == nil) {
managedObjectContext = [(YourAppNameAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}

// Retrieve the entity from the local store -- much like a table in a database
NSEntityDescription *entity = [NSEntityDescription entityForName:@"YourEntityName" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];

// Set the predicate -- much like a WHERE statement in a SQL database
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"YourIdentifyingObjectProperty == %@", yourIdentifyingQualifier];
[request setPredicate:predicate];

// Set the sorting -- mandatory, even if you're fetching a single record/object
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"yourIdentifyingQualifier" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release]; sortDescriptors = nil;
[sortDescriptor release]; sortDescriptor = nil;

// Request the data -- NOTE, this assumes only one match, that
// yourIdentifyingQualifier is unique. It just grabs the first object in the array.
YourEntityName *thisYourEntityName = [[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0];
[request release];
request = nil;

这一行:

YourEntityName *thisYourEntityName = [[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0];

我不明白我应该使用什么来代替“YourEntityName”,从我从帮助我的人那里收集到的信息是,我必须使用数据模型中的实体名称,但它似乎不起作用,我只是得到一个未声明的错误。

我有一个名为“Event”的实体,该实体有两个名为 userNote 和 timeStamp 的属性。

我正在使用核心数据处理一个本质上全新的干净分割 View ipad 项目。我想在 textViewDidEndEditing 中运行它,以便当用户完成输入注释时,它会更新对象。

最佳答案

YourEntityName 替换为用于表示您的实体的的名称。如果您已在 Xcode 中为实体声明了自定义类,请在此处指定该类。就您而言,听起来您尚未为您的实体声明自定义类。在这种情况下,请使用 NSManagedObject 作为实体类。

在 Xcode 的数据模型编辑器中,您可以为实体指定名称和类。它们不是同一件事。实体名称用于引用如下语句中的实体:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];

实体类指定用于该实体的托管对象的类。使用 Core Data 时,开发人员通常创建自定义类以用于其实体,但这不是必需的。如果您确实想要为实体使用自定义类,则必须自己创建该类(作为 NSManagedObject 的子类)并在 Xcode 的数据模型编辑器中指定该类名称。如果不指定自定义类,则使用 NSManagedObject 来表示实体对象。

关于iphone - CoreData 对象更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297943/

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