2014-02-24 2 views

답변

1

귀하의 init 메소드가 id 또는 그보다 최근에 instancetype 유형을 반환하는 것을 확인하면 NSError *을 반환 할 수 없습니다. 예외는 귀하의 상황에 맞는 길과 같습니다. 이 두 가지 선택이 있습니다.

선택 1 투척 예외. 이 경우 잘못 된 것이 있으면 예외를 throw하십시오.

- (id)init { 
    ... 
    ... 
    if (shouldThrowException) 
     NSException *myException = [NSException new] 
     ... populate this exception with details ... 
     @throw(myException) 
} 

선택이 잡기 예외. 이 경우, 무엇이 잘못되는지 상관하지 않는다면 발생한 모든 예외를 무시할 수 있습니다.

- (id)init { 
    ... 
    ... 
    @try { 
     // some dangerous thing 
    } @catch (NSException *e) {} 
}