1
원격 웹 서비스에서 데이터를 다운로드한다고 가정 해 보겠습니다. 더 정확하게는 웹 서비스에서 뉴스 목록을 다운로드하기 위해 각 뉴스에 newsID가 있습니다. 서비스의 기본 키로 간주하여 두 개의 동등한 newsID를 찾을 수 없습니다.핵심 데이터 속성 고유성
이미 존재하지 않는 뉴스 ID가있는 데이터 만 삽입 할 수 있습니까?
나는이 방법으로 내 솔루션 초안을 작성했습니다 :
- (BOOL)validateNewsID:(NSNumber **)newsID error:(NSError **)error
{
NSError *countError = nil;
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
[fetchRequest setEntity:[self entity]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"newsID == %@", *newsID];
[fetchRequest setPredicate:predicate];
NSUInteger resultCount = [SharedManagedObjectContext countForFetchRequest:fetchRequest error:&countError];
if (countError) {
OLog(countError);
*error = countError;
return NO;
}
if (resultCount > 0) {
NSString *errorString = @"NewsID should be unique";
NSDictionary *userInfoDict = [NSDictionary dictionaryWithObject:errorString
forKey:NSLocalizedDescriptionKey];
NSError *uniquenessError = [[[NSError alloc] initWithDomain:kNewsValidationDomain
code:kNewsValidationUniquenessCode
userInfo:userInfoDict] autorelease];
*error = uniquenessError;
return NO;
}
return YES;
}
하지만를 내 생각 때문에 나는 내 같은 객체가 이전과 관련하여 삽입 찾을 페치 요청을 수행 할 때, 예상대로되지 작업을 수행합니다. 내가 잘못?
어떻게 해결할 수 있습니까?
왜 포인터에 대한 포인터를 newsID로 보내시겠습니까? –
매개 변수가 선언되었으므로 (NSNumber **) newsID –