performSelector:オブジェクトを返す、を使用して、id他のいくつかのメソッドを呼び出しています。これらのメソッドの戻り型は、実際には、、、BOOLまたはその他の種類のオブジェクトのいずれかです。intNSDate
performSelector:から返されたオブジェクトがであるかどうかをどのように判断できBOOLますか?に変換してみましたNSNumberが、オブジェクトが。でない場合はクラッシュしますBOOL。
次のような属性を持つクラスがあります。
@property(retain,nonatomic) NSString* A;
@property(assign,nonatomic) BOOL B;
@property(retain,nonatomic) NSArray* C;
@property(assign,nonatomic) int64_t D;
このクラスはフレームワークによって生成されるため、変更できません。Aしかし、、、、をループして、各属性を呼び出しB、データを取得したいと思います。ただし、ご覧のとおり、返品の種類はさまざまであるため、それに合わせる必要があります。CD
私は次のようなことをしています:
SEL s = NSSelectorFromString(@"A");
id obj = [object performSelector:s];
//check if obj is BOOL
//do something with obj