0
下面是我的更新方法無法更新核心數據對象正確
-(void)updateData:(NSString *)doctorName hospitalName:(NSString *)hospitalName emailAdd:(NSString *)emailAdd phoneNum:(NSString *)phoneNum mobileNum:(NSString *)mobileNum
{
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"DoctorInfo" inManagedObjectContext:delegate.persistentContainer.viewContext];
NSFetchRequest *request = [NSFetchRequest new];
[request setEntity:entityDesc];
NSString *query = doctorName;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(doctorName = %@)", query];
[request setPredicate:predicate];
NSError *error;
NSAsynchronousFetchResult *storeResult = [delegate.persistentContainer.viewContext executeRequest:request error:&error];
NSArray *result = storeResult.finalResult;
DoctorInfo *firstResult = [result firstObject];
firstResult.doctorName = doctorName;
firstResult.hospitalName = hospitalName;
firstResult.emailAdd = emailAdd;
firstResult.phoneNumber = phoneNum;
firstResult.mobileNumber = mobileNum;
if (![delegate.persistentContainer.viewContext save:&error]) {
NSLog(@"Couldn't edit: %@", error);
}
}
我能夠更新除了doctorName
所有的變量。我認爲這可能是由於這行代碼:
NSString *query = doctorName;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(doctorName = %@)", query];
[request setPredicate:predicate];
我應該如何修改這個方法,這樣我就可以更新doctorName呢?
你要什麼給醫生名稱更改爲?您在代碼中唯一的值是您用於搜索記錄的值 – Paulw11