#iphone #objective-c
#iPhone #objective-c
Вопрос:
Я получаю предупреждение в строке (текстовое поле.делегировать = self;), в котором говорится «Присвоение идентификатору ‘из запроса предупреждения несовместимого типа»
- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle okButtonTitle:(NSString *)okayButtonTitle
{
if (self == [super initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelButtonTitle otherButtonTitles:okayButtonTitle, nil])
{
UITextField *theTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[theTextField setBackgroundColor:[UIColor whiteColor]];
[self addSubview:theTextField];
self.textField = theTextField;
[theTextField release];
CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, -25.0);
[self setTransform:translate];
theTextField.backgroundColor = [UIColor clearColor];
theTextField.borderStyle = UITextBorderStyleRoundedRect;
theTextField.delegate = self;
}
return self;
}
Ответ №1:
Об этом свойстве в документах
@property(nonatomic, assign) id<UITextFieldDelegate> delegate
Это означает, что ваш класс должен соответствовать UITextFieldDelegate
протоколу.
Объявление может выглядеть следующим образом
@interface MyController : NSObject <UITextFieldDelegate> {
Ответ №2:
Попробуйте использовать приведенный ниже код и дайте мне знать, если вы все еще получаете то же предупреждение.
- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle okButtonTitle:(NSString *)okayButtonTitle
{
if (self == [super initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelButtonTitle otherButtonTitles:okayButtonTitle, nil])
{
UITextField *theTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[theTextField setBackgroundColor:[UIColor whiteColor]];
theTextField.backgroundColor = [UIColor clearColor];
theTextField.borderStyle = UITextBorderStyleRoundedRect;
theTextField.delegate = self;
self.textField = theTextField;
[theTextField release];
[self addSubview:textField ];
CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, -25.0);
[self setTransform:translate];
}
return self;
}
Также проверьте, подтверждается ли ваш класс UITextFieldDelegate
протоколом.