Использование UIAlertView в NSObject

Мне ужасно трудно заставить UIAlertView работать в моем настраиваемом классе NSObject. В проведенном мною исследовании кажется, что это должно быть возможно, но вот с чем я столкнулся.

Во-первых, вот мой код:

-(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];
}

Если я установил делегата на себя, этот код выйдет из строя, как только я нажму кнопку. Если я установил для него значение nil, clickedButtonAtIndex никогда не вызывается. Я пробовал использовать и без использования .

Я знаю, что кто-то спросит: «Почему вы делаете это в NSObject, а не в своем UIViewController?». В первую очередь потому, что я хочу отделить этот код, чтобы я мог использовать его в разных местах своего приложения. Но еще и потому, что это небольшая часть большого логического блока, который имеет смысл быть сам по себе.

Есть идеи, что я делаю не так?

Спасибо, Богатый

7
задан Michael Dautermann 26 December 2011 в 20:17
поделиться