Tag: 实体

在创build新对象时查询特定属性的核心数据,如果存在,则返回该对象;如果不存在,则创build一个新的对象

我有一个问题,在创build一个新对象之前,通过谓词检查一个实体的特定属性是否存在于核心数据库中; 如果对象存在,我宁愿返回它比创build一个新的对象。 我有一个简单的应用程序,在导航栏中有一个带有加号button的表格视图; 用户点击它,并带有4个文本字段的视图控制器。 他们填写这些信息,按保存,它被保存到核心数据,并显示在TableView中(通过使用NSFetchedResultsControllers)。 数据模型如下: 具有isReceived的事务实体BOOL属性具有名称string属性的Person实体具有标题string属性的Occasion实体具有数量string属性的Item实体 交易与Person(whoBy),Occasion(Occasion)和Item实体有关系。 在具有save方法的视图控制器中,我有下面的代码将新的对象插入交易,人员,场合实体等。每个交易当然是唯一的,但是对于每个交易,用户可以select现有的PERSON /或场合,如果那个人不存在,它将被创build(同样的情况下)。 我对这里的代码格式略有困惑。 编辑:我已经尝试了代码的组合,可以只是不能得到这个工作。 在下面的代码中,我在谓词中引用person.name,但是我也尝试创build一个本地的NSStringvariables来保存self.nameTextField.text代码,但是什么也没做。 我试图创build一个NSString属性来引用它的方式,这是行不通的。 我试着用MATCHES, LIKE, CONTAINS, ==和每个组合之间的单词。 – (IBAction)save:(id)sender { NSManagedObjectContext *context = [self managedObjectContext]; Transaction *transaction= [NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:context]; Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context]; Occasion *occasion = [NSEntityDescription insertNewObjectForEntityForName:@"Occasion" inManagedObjectContext:context]; Item *amount = [NSEntityDescription insertNewObjectForEntityForName:@"item" inManagedObjectContext:context]; NSFetchRequest *personFind = [NSFetchRequest fetchRequestWithEntityName:@"Person"]; personFind.predicate […]