iOS 개발 --Foundation 프레임워크의 NSError

1363 단어 ONEPIECE--iOS
종속성: NSError:NSObject:Foundation

NSError


NSError는 사용법이 유연하여, 이 대상을 통해 오류의 원인을 호출자에게 되돌릴 수 있다.NSError 객체에는
  • Error domain: 오류 범위는 문자열 오류가 발생한 범위, 즉 오류가 발생한 원인으로 일반적으로 고유한 글로벌 변수로 정의됩니다.예를 들어 URL을 처리하는 서브시스템은 URL에서 데이터를 분석하거나 가져올 때 오류가 발생하면 NSURLErrorDomain을 사용하여 오류 범위를 나타낸다.
  • Error code: 오류 코드는 정수 고유의 오류 코드로 특정 범위 내에서 발생한 오류를 나타냅니다.특정한 범위 내에서 일련의 관련 오류가 발생할 수 있는데, 이러한 오류는 보통 enum으로 정의된다.예를 들어 http 요청이 잘못되었을 때 http 상태 코드를 오류 코드로 설정할 수 있습니다.
  • User info: 사용자 정보, 이 오류에 대한 사전 관련 추가 정보입니다. 여기에는'현지화된 설명'이 포함되어 있을 수 있습니다. 이 오류를 일으킨 또 다른 오류가 있을 수 있습니다. 이 정보를 통해 관련 오류를'오류 체인'으로 연결할 수 있습니다.

  • NSError 의 일반적인 용도:


    (1) 매개변수는 NSError 객체를 가리키는 또 다른 포인터를 가리키는 포인터입니다.또는 NSError 객체를 직접 가리키는 포인터로 간주할 수도 있습니다.이렇게 하면 이 방법은 일반적인 반환 값이 있을 뿐만 아니라 NSError 대상을 호출자에게 되돌려줄 수 있다.그 용도는 다음과 같다.
    - (BOOL)doSomething:(NSError**)error{
    NSError *error = nil;
    BOOL ret = [object doSomething:&error];
    if (error) {
        	//there was a error
    }
    return ret;
    }
    

    (2) 다음 코드를 사용하여 NSError 객체를 출력 매개변수로 전달합니다.
    - (BOOL)doSomething:(NSError**)error {
    //Do something 
        if (/*there was an error*/) {
            if (error) {
                *error = [NSError errorWithDomain:domain code:code userInfo:userInfo];
        }
        return NO; 
        }else {
            return YES;
        }
    }
    

    좋은 웹페이지 즐겨찾기