Core data 更新核心数据中的属性
我知道这个问题已经被回答了很多次,但我似乎无法让我的问题得到解决 我有一个名为Core data 更新核心数据中的属性,core-data,nsfetchrequest,insert-update,Core Data,Nsfetchrequest,Insert Update,我知道这个问题已经被回答了很多次,但我似乎无法让我的问题得到解决 我有一个名为SchoolNames的实体,它有一个名为nameOfSchool的属性。我希望能够更新此属性 NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"SchoolName"]; fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor
SchoolName
s的实体,它有一个名为nameOfSchool
的属性。我希望能够更新此属性
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"SchoolName"];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"NameOfSchool" ascending:YES]];
NSError *errorLoading = nil;
self.schoolNames = [context executeFetchRequest:fetchRequest error:&errorLoading];
NSLog(@"%d", self.schoolNames.count );
我可以在NSLog
中看到我正在将数据加载到schoolNames
数组中。但我不知道如何更新数组中的条目,然后将其保存回实体
非常感谢您的帮助。executeFetchRequest的返回值是一个SchoolName对象数组。要更新这些对象,只需为属性指定一个新值:
for (SchoolName *sn in self.schoolNames) {
sn.nameOfSchool = ... ; // new value;
}
NSError *error;
if (![context save:&error]) {
// Save failed, handle error ...
}
executeFetchRequest
的返回值是一个SchoolName对象数组。要更新这些对象,只需为属性指定一个新值:
for (SchoolName *sn in self.schoolNames) {
sn.nameOfSchool = ... ; // new value;
}
NSError *error;
if (![context save:&error]) {
// Save failed, handle error ...
}
马丁的建议确实有效。我投了赞成票 另一种方法是通过KVC访问您感兴趣的属性(如果您没有对实体
SchoolName
进行子类化)
还请记住保存,相反,更改将仅在内存中进行(不在存储中)
另外,在代码中,我假设
nameOfSchool
的类型为NSString
。其他值也是可能的。马丁的建议确实有效。我投了赞成票
另一种方法是通过KVC访问您感兴趣的属性(如果您没有对实体SchoolName
进行子类化)
还请记住保存,相反,更改将仅在内存中进行(不在存储中)
另外,在代码中,我假设
nameOfSchool
的类型为NSString
。其他价值观也是可能的。太棒了-非常感谢你-非常感谢你-非常感谢我也尝试过这个,它也有效-谢谢我也尝试过这个,它也有效-谢谢