あらゆる種類の変数、プリミティブ、およびオブジェクトを取る関数または NSLog() のようなディレクティブを作成したいと考えています。その機能では、それらを区別したいと思います。
私はそれがオブジェクトに対してどのように機能するかを知っています:
- (void)test:(id)object {
if ([object isKindOfClass:[NSString class]])
...
しかし、オブジェクトを構造体や整数や浮動小数点数と区別するにはどうすればよいですか。何かのようなもの:
"isKindOfStruct:CGRect" or "isInt"
例えば?
これは可能ですか?すべてを NSLog(@"...", objects, ints, structs) に送信できるので、可能だと思いましたか?
助けてくれてありがとう!
編集
私の最終的な目標は、ある種のポリモーフィズムを実装することです。
私は自分の関数を呼び出すことができるようにしたい:
MY_FUNCTION(int)
MY_FUNCTION(CGRect)
MY_FUNCTION(NSString *)
...
or [self MYFUNCTION:int]...
そしてMY_FUNCTIONで
-(void)MYFUNCTION:(???)value {
if ([value isKindOf:int])
...
else if ([value isKindOf:CGRect])
...
else if ([value isKindOfClass:[NSString class]])
...
}
isKindOf が存在せず、プリミティブでそのようなメソッドを実行することさえできないことを私は知っています。「???」についてもよくわかりません。関数ヘッダーの「値」のジェネリック型。
それは可能ですか?