カスタムNSObjectクラス内でUIAlertViewを動作させるのに苦労しています。私が行った研究では、それは可能でなければならないと思われますが、ここには私が踏んだことがあります。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>
を使って試してみました。
私は誰かがあなたのUIViewControllerではなく、なぜNSObjectでこれをやっているのか聞いてくるだろうと知っています。主に私はこのコードを分けて、アプリの複数の場所から使うことができるからです。しかし、これは、それが自分自身の上にあるのが理にかなっている、より大きな論理ブロックの小さな断片でもあるからです。
私が間違っていることは何ですか?
おかげで、 リッチ
このコード*はず*仕事、実際に。デリゲートが設定され、警告がクラッシュすると、どこがクラッシュしてスタックトレースがありますか? –
ボタンをタップするとオブジェクトの割り当てが解除されましたか? (オブジェクトは通常代理人を保持しません) –
これは典型的な例です。私はこれを見つめて何時間も過ごし、研究して何かを試してみると成功しなかったので、私は助けを求めることにしました。 1時間も経たないうちに、私はついにそれを理解した。それは、コールビューコントローラでカスタムオブジェクトを作成する方法と関係していたので、フレデリックが提案したように、ボタンをタップした時点で解放されていました。入力仲間に感謝します! – rdfrahm