2013-02-25 6 views
0

Я пытаюсь подкласс UILabel так сеттер SetText проверить нуль, чтобы избежать этого, если поставляемый параметр является NSNULL: [NSNull isEqualToString]: непризнанные селектор направлен напримерObjective C сеттер в суперкласса вызывается вместо подкласса

Код выглядит следующим образом. Я прошел через в отладчике и он не пошел в новый сеттер, который я назвал по:

[someSubClassLabel setText:someValueWhichMayBeNull]; 

где someSubClassLabel является UILabelWithNULLHandler.

в .h

#import <UIKit/UIKit.h> 
@interface UILabelWithNULLHandler : UILabel 
- (void) setText:(NSString *) newText; 
@end 

Defined метод в .m:

- (void) setText:(NSString *) newText 
{ 
    if(![newText isKindOfClass:[NSNull class]]) 
    { 
     super.text = newText; 
    } 
    else 
    { 
     super.text = @""; 
    } 
} 

Edit: Я полагаю, я могу добавить код для обработки ноль, но на данный момент, я я имею дело с NSNUll, который я вытащил из NSDictionary.

+0

Вы уверены, что isKindOfClass необходимо? Почему нет: if (newText) {// Do sth ... –

+3

И 'someSubClassLabel' является экземпляром' UILabelWithNULLHandler'? – trojanfoe

+1

Вы уверены, что тип 'someSubClassLabel' - ваш новый' UILabelWithNULLHandler'? –

ответ

0

@Hot Licks был прав. У меня все еще есть UILabel в моей раскадровке. Необходимо установить новое имя класса в Identity Inspector в пользовательском классе.