2010-06-16 1 views
3

Xcode에서 모델을 만들었으며 다양한 속성에 대해 최소 & 개의 최대 값이 정의되어 있으며 런타임에 coreData에 의해 적용됩니다.CoreData 유효성 검사 및 오류 프레임 워크를 올바르게 사용하는 방법은 무엇입니까?

사용자 입력 값을 확인하기 위해 NSManagedObject validateValue : forKey : error를 사용하고 있습니다.

현지화 된 오류 메시지가 구체적이지 않으며 너무 작아서 "작업을 완료 할 수 없습니다 (코코아 오류 1620)"라는 메시지가 표시되면 실망했습니다. t 완료 (코코아 오류 1610) "너무 큰 값의 경우.

"엔터티 및 속성 이름과 오류 메시지를 포함하여 관리 대상 개체 모델의 대부분을 현지화 할 수 있습니다"라는 coreData 설명서에 기록되어 있습니다. 불행히도 오류 메시지를 구현하는 방법에 대해서는 자세히 설명하지 않았습니다.

어떻게 오류 메시지를 사용자 정의 하시겠습니까? 어떻게 그들을 지역화합니까? "값이 % @보다 낮아야합니다"또는 "값이 % @보다 높아야합니다"와 같은 참조 값을 언급하는 방식으로 사용자 정의 할 수 있습니까?

답변

0

원하는대로 오류를 사용자 지정하려면 사용자 지정 NSManagedObject 하위 클래스를 구현 한 다음 각 특성에 대한 유효성 검사 메서드를 구현하여 원하는 오류를 반환해야합니다.

+0

실제로 유효성 검사 루틴은 이미 존재하며 매우 일반적입니다. xcode coredata 모델 디자이너에서 min max 값을 직접 정의 할 수 있으면 각각의 nsmanaged 객체를 사용자 정의하지 않아도됩니다. 어느 쪽이든이 값에 액세스하는 방법을 찾거나 각각의 속성에 사용자 정의 최소/최대 userinfo 값을 사용하여 내 자신을 재정의 할 수도 있습니다. – Xav

+0

오류 자체는 CocoaErrors.h에 정의되어 있습니다. 1620은 NSValidationNumberTooSmallError이고 1610은 NSValidationNumberTooLargeError입니다. 열거 이름을 반환하는 사전을 만들 수도 있습니다. 숫자 코드는 프로그래머를위한 것이며 최종 사용자의 텍스트 오류입니다. 텍스트 오류는 종종 모호한 오류보고 만 포함하는 것입니다. – TechZen

+0

비 선택적 속성을 공백으로 남겨 두었을 때 나타나는 팝업 메시지의 텍스트를 변경하기 만하면됩니까? 또는 그것을 변경하는 쉬운 방법이 있습니까? – Clay

관련 문제