У меня есть две подслои UIViewController, оба они соответствуют протоколу UITextFieldDelegate. IOW, у меня есть эти классы.Почему textFieldwithPlaceHolderText не определен для одного контроллера представления, который соответствует UITextFieldDelegate?
# MyVC1.h
@interface MyVC1 : UIViewController <UITextFieldDelegate>
# MyVC1.m
@interface MyVC1() {
// Private variable, so not a property
UITextField *_myTextField;
}
@end
@implementation MyVC1
- (void)viewDidLoad
{
_myTextField = [self textFieldwithPlaceHolderText:@"*Text"];
}
@end
ЖЕ КОД для MyVC2 класса, за исключением, конечно, имя класса.
Однако, это странная часть, мой код компилируется для MyVC1, но НЕ для MyVC2. Для MyVC2, компилятор говорит: «Нет видимых @interface для„MyVC2“заявляет селектор„textFieldwithPlaceHolderText“. Что я отсутствующий для MyVC2? Я дважды и трижды проверили!
Где вы создаете 'textFieldwithPlaceHolderText'? Вы уверены, что оба ваших класса имеют этот метод, потому что он не является методом 'UITextFieldDelegate'. – Jsdodgers
ТОЛЬКО #import в файле .h файлов обоих контроллеров: #import, я импортирую разные * .h файлы в их соответствующие файлы * .m, но эти * .h файлы (импортированные в. m файлов), только сами #import . У NONE моих классов этот метод определен. Это даже странно. IOW, почему это вообще работает, то есть для MyVC1? –
Вы уверены, что .h для MyVC1 расширяет UIViewController, а не какой-либо другой ViewController? И что у него нет метода, определенного где-то? – Jsdodgers