不明なタイプのオブジェクトを受け取るコードがあります。、 、または他のクラスにラップされたスカラーであるNSString
可能性があります。NSNumber
NSValue
-(void) doSomethingWith:(id) value {
if ( <test-for-NSValue> ) {
// Do something with a NSValue
} else {
// Do something else
}
}
NSValue 内のどこにスカラー型があるかを特定する必要があります。
問題は、NSValue でラップされたスカラーと NSNumber を識別することです。NSNumber は NSValue から継承され、どちらもクラス クラスターであるため、それらを整理するのに苦労しています。
そう:
[value isKindOfClass:[NSValue class]]
... NSNumbers を NSValues と見なします。
[value isMemberOfClass:[NSValue class]]
... インスタンスは具体的なサブタイプであるため、NSValues を認識しません。
誰でもこれを行う方法を知っていますか?