제임스
샘플 코드를 사용하여 두 가지 질문에 모두 답변 해 드리겠습니다.
특정 오브젝트를 업데이트하려면 술어와 함께 NSFetchRequest
을 새로 작성하고 오브젝트 (NSManagedObject
)를 잡고 원하는 값을 갱신하고 컨텍스트를 저장하십시오.
따라서, 예를 들어 :
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"YourEntityName"];
// set the predicate (it's equal to set a WHERE SQL clause) filtering on the name for example
// use camel case notation if possible, so instead of Name use name (for this you have to changes your model, if you don't want to do it use Name)
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@", @"Joseph"]];
NSError* error = nil;
NSArray* results = [context executeFetchRequest:fetchRequest error:&error];
// do some error checking here...
for (NSManagedObject resultItem in results) {
// use KVC (for example) to access your object properties
[resultItem setValue:@"myName" forKey:@"name"];
}
// save your context here
// if you don't save, changes are not stored
인쇄하려면 당신은 (유형 NSManagedObject
의) 개체를 잡아 NSLog
를 사용, 자체까지 새로운 NSFetchRequest
을해야합니다. 그래서 예를 들면
:
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"YourEntityName"];
NSError* error = nil;
NSArray* results = [context executeFetchRequest:fetchRequest error:&error];
// do some error checking here...
for (NSManagedObject resultItem in results) {
NSLog(@"%@", [resultItem valueForKey:@"name"]);
}
P.S. 필자가 제공 한 코드는 매우 간단하며 특정 값에 사용 된 술어는 name
과 대조됩니다. 이 오류가 발생할 수 있으므로, 모델을 수정하고 각 개체에 대한 guid 일종의 사용 (id는 그 것이지만 다른 이름으로 바꿀 것입니다. 예를 들어 userId
) . 완료되면이를 확인할 수 있습니다.
희망이 있습니다.
를 코드는 어디 업데이트하는 방법을 알고 문서를 통해 읽을 것인가? – holex