2010-03-22 5 views
0

누군가가 NSParseErrorException을 캡처하는 방법을 말해 줄 수 있습니까?NSParseErrorException 캡처

상황 : 내 app은 작은 .plist 파일을 다운로드합니다. 나는 string 메소드 -propertylist를 사용하여이를 사전으로 변환한다. 이것은 정상적으로 잘 작동합니다. 파일을 검색하기 전에 연결을 확인하므로 인터넷에 연결되어 있으면 제대로 작동하므로 제대로 작동하지 않을 때 제대로 작동합니다.

그러나 충돌 사례가 발견되었습니다. 내가 인터넷에 연결하기 전에 (예 : Starbucks에서) 자동 완성이 필요한 위치에있는 경우 앱에서 반환되는 내용은 plist가 아니며 구문 분석을 시도하면 응용 프로그램이 중단됩니다.

그래서 내 코드를 변환하여 NSParseErrorException을 잡아 내고이 코드 조각을 건너 뛸 수있는 프로그램을 충돌시키는 방법이 있습니까?

NSDictionary *temp = [myDownloadString propertyList]; 

나는이

if ([myDownloadString propertyList]==NSParseErrorException){ 
//do something 
} 

일을 시도했지만 그것은 작동하지 않았다.

답변

2

예외는 메서드에서 직접 반환되지 않는 특별한 종류의 오류입니다. 예외적으로 실행 체인이 완전히 끊어집니다.

NSDictionary * temp = nil; 
@try { 
    temp = [myDownloadString propertyList]; 
} @catch (NSParseErrorException * exception) { 
    // do something 
} 

예외 처리 다른 물건에가는 큰 주제 (finally 블록 등)이다 : 그것을 처리하려면 다음과 같이 try/catch 블록이라고 무엇에 던져 수있는 코드를 삽입해야 - 체크 아웃해야합니다. further documentation eg here.

+0

매력처럼 작동합니다. 감사. – Martin