У меня ошибка, которую я не понимаю.Почему мой делегат не получает этот селектор?
У меня есть класс, чтобы помочь с заданиями на печать:
//.h
@interface PrintDelegate : NSObject <UIPrintInteractionControllerDelegate, UIAlertViewDelegate>
@property (weak, nonatomic) FFDetailViewController* controller;
@property (strong, nonatomic) NSMutableData* pdf;
@property (assign) int pageCount;
@property (strong, nonatomic) NSArray* fields;
@property (weak, nonatomic) UIPrintInteractionController* printController;
- (id) initWithPageCount:(int)pc forFields:(NSArray*)flds Controller:(FFDetailViewController*)ctlr;
- (int) printFromButton: (UIBarButtonItem*) btn;
- (void) makePDF;
- (void) shift:(PixelShiftDirection)dir pixelCount:(int)amt;
- (void) adjustFields;
- (void) onPrintComplete;
@end
При завершении печати отобразить предупреждение, чтобы спросить, если пользователь хочет, чтобы настроить распечатку (и повторите печать).
//.m
- (void) onPrintComplete
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Printing Complete" message:@"Would you like to adjust the field positions?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Adjust", nil];
[alert show];
}
- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString* clickedButton = [alertView buttonTitleAtIndex:buttonIndex];
if ([clickedButton isEqualToString:@"Adjust"])
{
[self adjustFields];
}
}
Когда я нажимаю любую кнопку в оповещении, я получаю сообщение об ошибке, похожее на это:
-[__NSArrayM alertView:clickedButtonAtIndex:]: unrecognized selector sent to instance
Объект приема плохой селектор всегда что-то странное, (я также видел NSCFArrayM и __NSMallocBlock). Селектор - это метод из протокола UIAlertViewDelegate. Я не понимаю, почему селектор отправляется на какой-то неправильный объект, а не на объект PrintDelegae.
Благодаря