У меня был рабочий код для категорий UITextField и UITextField, аналогичный приведенным ниже на устройствах iOS5 и iOS6. Однако метод категории UITextView, похоже, не вызывается на устройстве iOS7 (iPhone5S). Код:Наследование категории UITextView не работает должным образом на устройстве iOS7
@interface UIView (CustomCategory)
-(void) someCategoryMethod;
@end
@implementation UIView (CustomCategory)
-(void) someCategoryMethod {
NSLog(@"UIView category methods appear to work.");
}
@end
@interface UITextField (CustomCategory)
-(void) someCategoryMethod;
@end
@implementation UITextField (CustomCategory)
-(void) someCategoryMethod {
[super someCategoryMethod];
NSLog(@"UITextField category methods appear to work.");
}
@end
@interface UITextView (CustomCategory)
-(void) someCategoryMethod;
@end
@implementation UITextView (CustomCategory)
-(void) someCategoryMethod {
[super someCategoryMethod];
NSLog(@"UITextView category methods appear to work.");
}
@end
void testFunction() {
UITextView* textView = [[[UITextView alloc] init] autorelease];
[textView someCategoryMethod];
UITextField* textField = [[[UITextField alloc] init] autorelease];
[textField someCategoryMethod];
}
На устройстве iOS5, это (функции теста) печатает:
UIView category methods appear to work.
UITextView category methods appear to work.
UIView category methods appear to work.
UITextField category methods appear to work.
Однако, на устройстве iOS7 Печатается:
UIView category methods appear to work.
UIView category methods appear to work.
UITextField category methods appear to work.
Так метод категории UIView фактически вызывается в предпочтении методу категории UITextView, который, как представляется, противоречит this answer.
Может ли кто-нибудь уточнить, должен ли вышеуказанный код работать должным образом (то есть как на iOS5 и iOS6)?
Ваш пример кода не воспроизводит вывод, который вы перечислить ваш вопрос под iOS7. Он выводится с наследованием, как и ожидалось. –
@FruityGeek: код * определенно * выдает указанный результат на iPhone5S, который я использую (поэтому я предположил, что он применяется к iOS7, так как у меня нет других устройств iOS7 для тестирования). –