UILabelをサブクラス化しようとしているので、指定されたパラメーターがNSNULLの場合、セッターsetTextがnullをチェックして、これを回避します。[NSNull isEqualToString:]:認識されないセレクターがインスタンスに送信されます
コードは以下の通りです。デバッガーをステップスルーしましたが、呼び出した新しいセッターには入りませんでした。
[someSubClassLabel setText:someValueWhichMayBeNull];
ここで、someSubClassLabelはUILabelWithNULLHandlerです。
.hで
#import <UIKit/UIKit.h>
@interface UILabelWithNULLHandler : UILabel
- (void) setText:(NSString *) newText;
@end
.mでメソッドを定義しました:
- (void) setText:(NSString *) newText
{
if(![newText isKindOfClass:[NSNull class]])
{
super.text = newText;
}
else
{
super.text = @"";
}
}
編集:nilを処理するコードを追加できると思いますが、当面は、NSDictionaryから取得したNSNUllを処理しています。