我有一個可怕的時間讓UIAlertView在我的自定義NSObject類中工作。在我做的研究中,它應該是可能的,但這是我遇到的。在NSObject中使用UIAlertView
首先,這裏是我的代碼:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"clickedButtonAtIndex: %d", buttonIndex);
}
-(void)testAlertView {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"List Contains Items"
message:@"List contains items. Remove all items & delete?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil];
[alertView show];
}
如果我設置爲自己的代碼,只要我輕按一鍵崩潰的委託。如果我將它設置爲零,clickedButtonAtIndex永遠不會被調用。我已經嘗試過,沒有使用<UIAlertViewDelegate>
。
我知道有人會問'你爲什麼要在NSObject中而不是在你的UIViewController中'。主要是因爲我想分開這個代碼,所以我可以在我的應用程序的多個地方使用它。但也是因爲這是邏輯的一大塊很小的一部分,它有自己的意義。
任何想法我做錯了什麼?
感謝, 豐富
此代碼*應*工作,其實。當代理被設置並且警報崩潰時,它究竟在哪裏崩潰並且存在堆棧跟蹤? – 2011-12-26 20:19:50
當您點擊按鈕時,您的對象是否已被釋放? (對象通常不會保留他們的代表) – 2011-12-26 20:26:41
這只是典型的。我花了幾個小時盯着這個,研究並嘗試了一件又一件沒有成功的事情,所以我決定尋求幫助。不到一個多小時後,我終於找到了答案。它與我在調用視圖控制器中創建自定義對象的方式有關,所以當我按下按鈕時它已經釋放,就像Frederick所建議的那樣。感謝輸入的人! – rdfrahm 2011-12-26 21:10:41