2014-02-24 77 views

回答

1

那么看到你的init方法返回的类型是id或更近,instancetype,则不能返回NSError *。例外似乎是你的情况的方式。有了这些,你有两个选择。

选择1投掷异常。在这种情况下,如果您发现错误,只需抛出异常。

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

选择2捕获异常。在这种情况下,如果您不在乎发生了什么问题,则可以忽略所引发的任何异常。

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