UIAlertView* myAlert = [[UIAlertView alloc] initWithTitle:@"sorry" message:@"1234567890" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; myAlert.delegate = self; [myAlert show]; //[myAlert release];//如果未在下面的委託中release的話記得要在這裡release,否則記憶體流失了
這裡設定delegate有啥用出,加入我們僅僅是只要顯示一個彈窗警告,而不採取其他動作我們可以安全用如下代碼解決:
[[[[UIAlertView alloc] initWithTitle:@"sorry" message:@"1234567890" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] autorelease] show];
設定委託有啥作用呢?我們可以實現UIAlertView的一個委託方法,讓後可以在這個方法裡處理按下按鈕後的動作,根據使用者按下的哪個按鈕來決定進行射門樣的操作,比如按下OK按鈕與按下Cancel按鈕的後要進行的操作必然有可能不同:
-(void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"Button %d pressed",buttonIndex); [alertView release];}
看到否?我們可以通過buttonIndex來判斷使用者按下了哪個按鈕,然後來進行相應處理,同時我們還可以在這裡面release,因為我們在上面的代碼中可能不確定需要在哪裡release,所以在按下按鈕後release是不是最安全的呢?