1
編寫代碼時,有許多情況下必須將其視爲運行時錯誤:alloc/init返回nil,未找到資源,[someClass canDoThis]返回NO -needed特徵,其中YES將是自然的回答,...iPhone - 如何在運行時處理錯誤
對於所有這些情況下,我寫了exitWithMessage
例程(即顯示一個警告框),每類都有釋放分配內存kill
方法。
所以......當在init
方法,你有這幾樣例外,我認爲你可以這樣做:
[self kill];
[OneClass exitWithFatalErrorMessage];
return nil;
- (void) exitWithFatalErrorMessage:(NSString*)message
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedStringFromTable(@"Error" @"ErrorMessages", @"") message:message delegate:self cancelButtonTitle:NSLocalizedStringFromTable(@"Understood", @"ErrorMessages", @"") otherButtonTitles: nil];
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// stop the normal running of the app, there is a situation that would prevent it
}
- (void)kill
{
self.member = nil;
self.member2 = nil;
...
}
但是,這並不工作...不顯示我的警報(在exitWithMessage其他任何地方使用比爲init方法時工作正常。
你會如何處理這些情況?這是一塊編碼罰款的方式做到的?
如果是的話,爲什麼我的警惕不顯示(我進入視圖控制器的initWithCoder方法爲例)?
當然......這只是一個問題的錯誤。 – Oliver 2012-02-07 10:32:55