NSError가 사용되지 않는 가능한 오류를 처리하는 일반적인 질문입니다.NSError가없는 코코아/iOS 오류 처리 스타일
의 우리가/코코아의 코드를 다음과 같이 몇 가지 일반적인 아이폰 OS 있다고 가정 해 봅시다 :
NSXMLParser *parser = [[NSXMLParser alloc] initWithData: myData];
문서는 "오류가 발생하면 무기 호"는 NSXMLParser 객체가 반환, 또는 될 것이라고 주장한다.
은 (공식적으로,이 특정 방법은 행복하게 유효한 NSXMLParser 인스턴스를 반환 '데이터'인수 전무를 취할 것입니다.)나는 매우 많은 아이폰 OS 개발자가 반환 값의 이러한 유형을 확인하지 것으로 나타났습니다. 그들은 init 클래스가 항상 작동했다고 가정합니다. 저에게는 위험한 것이 있습니다. 그러나 노련한/물린 코코아 개발자의 견해를 듣고 싶습니다.
반환 값에 NSAssert를 사용하면 개발 중에는 나를 보호 할 수 있지만 응용 프로그램이 야생 상태 일 때는 나를 보호하지 못합니다.
Nil 반환 값을 확인하고 내 자신의 NSError를 구성해야합니까? 아니면 다른 것을할까요?
@ 브라이언, 그건 내가 묻고있다. 이 특별한 오류를 어떻게 처리하겠습니까? – Womble
NSAssert를 사용하여 Nil이 아닌지 확인합니다. 오류가 발생하면, 나는 아무것도 파서를 얻고 어떤 일도 끝내지 않을 것이다. 잘하면 내가 얻을 수있는 최선입니다. –
@Abizern, 코드 줄을 Google로 검색하면 많은 결과를 얻을 수 있습니다. 압도적 인 숫자의 구현은 반환 값을 확인하지 않습니다. 그것은 단지 샘플/프래그먼트 구현 때문일 수 있지만, 일반적인 접근법은 동일하다고 생각합니다. 그러나 당신이 우리와 당신의 접근 방식을 공유하고 싶다면, 듣기 좋다. – Womble