2014-02-24 36 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) {} 
}