당신은 당신이 validateValue:forKey:error:
또는 사용자 정의 방법 또는 다른 곳에 넣어 여부, 사용자 지정 코드의 어떤 종류를 필요로하기 위하여려고하고있다.
내장 된 유효성 검사 방법을 사용할지 여부는 실제로 코드를 구성하는 방법에 따라 달라집니다.
- 값이 고유한지 확인하십시오.
- 그렇다면 새 인스턴스를 삽입하십시오.
그 이유는 부분적으로는 내재 된 유효성 검사 스키마가 아프기 때문입니다.하지만 대개 그 이유는 객체에 대한 변경 사항을 저장할 때마다 코드가 실행되기 때문입니다. 수표가 validateValue:forKey:error:
인 경우 값이 고유하다는 것을 확인한 후에도 반복해서 실행합니다. 그런 다음 다시해야 할 수도 있습니다. 따라서 가장 좋은 답변은 앱의 작동 방식에 대한 더 큰 그림에 달려 있습니다.
유효성 검사에 접근하는 간단한 방법은 확인해야하는 키와 값을 식별하는 조건자를 사용하여 가져 오기를 수행하는 것입니다. 다른 대답에 설명 된 것처럼 일반적인 가져 오기 방법을 변경하려는 한 가지 점은 executeFetchRequest:error:
대신 countForFetchRequest:error:
을 사용한다는 것입니다. 유효성 검사 중에 기존 객체를 가져와야 할 필요가있는 것처럼 들리지는 않습니다. 존재하는지 여부를 알아야하기 때문에 확인하십시오.
고유 특성의 유형에 따라이 작업을 통해 수행 할 성능 저하를 줄일 수 있습니다. 예를 들어, 문자열 인 경우. 일치하는 모든 기존 문자열을 확인하는 것은 상대적으로 비용이 많이 듭니다. 반면에 기존의 정수를 확인하는 것은 저렴합니다. 이 경우 고유 한 문자열 값의 숫자 해시를 저장하는 엔터티 형식에 숫자 속성을 추가하는 것이 좋습니다. 유일성을 검사 할 때만 해시를 사용하십시오. 일치하는 문자열을 찾는 것보다 훨씬 빠를 것입니다. NSString
은 값을 계산하기위한 편리한 hash
메서드를 가지고 있습니다.
자세한 설명 주셔서 감사합니다. – AppsDev