문제

Cocoa 함수에서 오류 코드 결과를 얻은 경우 그 의미를 쉽게 파악할 수 있는 방법이 있습니까(프레임워크 번들의 모든 .h 파일을 검색하는 것 외에)?

도움이 되었습니까?

해결책

당신은 <Framework/FrameworkErrors.h> 오류를 반환하는 메소드를 사용하고 있는 프레임워크의 헤더입니다.

예를 들어, NSError Foundation 프레임워크의 메소드에서 얻은 Cocoa 도메인에는 code 에 설명된 속성 <Foundation/FoundationErrors.h> 머리글.AppKit과 마찬가지로 <AppKit/AppKitErrors.h> 핵심 데이터 및 <CoreData/CoreDataErrors.h>.

또한, 해당 설명을 인쇄하면 NSError 디버거에서는 오류 도메인과 코드뿐만 아니라 API 참조에서 찾아볼 수 있도록 실제 오류 코드 상수의 이름도 포함해야 합니다.

다른 팁

Apple의 '오류 도메인' 및 '오류 코드' 섹션 오류 처리 프로그래밍 가이드 이 문제를 합리적으로 잘 해결하세요.다음을 수행해야 합니다.

  1. 오류를 기록하고 두 가지를 모두 기록합니다. 오류 도메인 (오류 코드 정의를 찾을 수 있는 위치를 알려주는 사람이 읽을 수 있고 Google에서 검색할 수 있는 문자열) 및 에러 코드 그 자체(정수)

  2. Google에서 검색하거나 아래 목록을 읽고 해당 오류 도메인에 대한 오류 코드가 정의된 헤더 파일의 이름을 알아보세요.

  3. 해당 헤더 파일에서 발생한 오류 코드를 검색하세요.오류 코드에 대한 상수 이름(예: ENOMEM), 그리고 설명적인 코멘트(예: /* Cannot allocate memory */) 오류가 무엇을 의미하는지 설명합니다.설명이 없고 상수 이름이 설명이 필요하지 않은 경우 Google에서 상수 이름만 검색하면 적절한 설명을 찾을 수 있습니다.

주요 오류 도메인의 일부 헤더 파일:

NSCocoaErrorDomain

오류 코드 선언은 세 개의 헤더 파일에 분산되어 있습니다.

  • <Foundation/FoundationErrors.h> (일반 재단 오류 코드)
  • <AppKit/AppKitErrors.h> (일반 AppKit 오류 코드)
  • <CoreData/CoreDataErrors.h> (핵심 데이터 오류 코드)

NSURLErrorDomain

확인하다 NSURLError.h

NSXMLParserErrorDomain

확인하다NSXMLParser.h

NSMachErrorDomain

확인하다 /usr/include/mach/kern_return.h

NSPOSIXErrorDomain

확인하다 /usr/include/sys/errno.h

NSOSStatusErrorDomain

확인하다

/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacErrors.h

또한 Cocoa의 NSError는 최종 사용자에게 표시될 수 있도록 만들어졌습니다.그냥 로그하면 읽을 수 있어야 합니다.

Carbon의 OSStatus 등에 대해 이야기하고 있다면 MacErrors.h가 있습니다.

NSError 오류의 경우 다음 코드 줄을 추가하세요.

NSError     *error;

// ... Some code that returns an error

// Get the error as a string
NSString *s = [error localizedDescription];

// Observe the code for yourself or display to the user.   
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top