2011-04-25 10 views
0

관리 대상 개체 컨텍스트에서 전달되는 현재 엔터티를 편집하는 insertNewObjectForEntityName과 비슷한 메서드가 있습니까? 다른 복제 엔티티를 만들고 싶지 않습니다.코어 데이터의 엔터티 편집

또한 사용자가 동일한 속성 (하나의 속성, 이벤트 제목)을 가진 두 개의 엔티티를 입력하는 것을 원하지 않습니다. 어떻게하면 동일한 제목 속성을 가진 새로운 엔티티를 추가하려고 할 때 경고가 튀어 나오게 할 수 있습니까?

답변

1

첫 번째 질문은 가져 오기 요청이있는 컨텍스트에 이미있는 개체를 가져 와서 개체의 일부 값을 변경 한 다음 해당 컨텍스트에서 -save 메서드를 호출하는 것입니다.

두 번째 부분에서는 사용자가 항목을 추가하려고 할 때 동일한 제목의 개체에 대한 컨텍스트를 검색하고 항목이 있으면 경고를 팝업합니다.


편집는 : 배열 categoryArray 모든 포함 요청 후

NSFetchRequest *categoryRequest = [[NSFetchRequest alloc] init]; 
[categoryRequest setEntity:[NSEntityDescription entityForName:@"Category" inManagedObjectContext:[self managedObjectContext]]]; 
NSString *categoryName = @"Cooking"; 
NSPredicate *categoryNameMatchesPredicate = [NSPredicate predicateWithFormat:@"name MATCHES %@", categoryName]; 
[categoryRequest setPredicate:categoryNameMatchesPredicate]; 
NSError *error = nil; 
NSArray *categoryArray = [[self managedObjectContext] executeFetchRequest:categoryRequest error:&error]; 

: 여기에 내가 설정하고이 요청을 가져 실행하는 (약간 수정) 내 응용 프로그램에서 일부 코드 카테고리 엔티티의 이름을 "Cooking"으로 지정합니다. "Cooking"이라는 이름의 엔티티가없는 경우 배열은 비어 있습니다.

-countForFetchRequest:error:을 사용하고 가져 오기 요청을 실제로 실행하기 전에 0이 아닌 수를 확인하는 것이 더 빠르지 만, 작은 iOS 앱에서 그다지 중요하지는 않습니다.

+0

정확히 두 경우 모두 수행하고 싶은 작업입니다. 페치 요청과 동일한 컨텍스트 검색 중입니까? 올바른 가져 오기 요청을 실행할 수없는 것 같습니다. 샘플 코드가 있습니까? 제 1 부 또는 제 2 부 모두가 제 두 문제를 올바르게 해결할 수 있다고 생각합니까? – Eric

+0

좋아요, 나는 가져 오기 요청 예제로 대답을 편집했습니다. –

+0

감사합니다. Simon, 나는 이것을 비틀고 필요한 경우 질문으로 돌아올 것입니다. – Eric

관련 문제