performSelector:
オブジェクトを返す、を使用して、id
他のいくつかのメソッドを呼び出しています。これらのメソッドの戻り型は、実際には、、、BOOL
またはその他の種類のオブジェクトのいずれかです。int
NSDate
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
、データを取得したいと思います。ただし、ご覧のとおり、返品の種類はさまざまであるため、それに合わせる必要があります。C
D
私は次のようなことをしています:
SEL s = NSSelectorFromString(@"A");
id obj = [object performSelector:s];
//check if obj is BOOL
//do something with obj