不明なタイプのオブジェクトを受け取るコードがあります。、 、または他のクラスにラップされたスカラーであるNSString可能性があります。NSNumberNSValue
-(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 を認識しません。
誰でもこれを行う方法を知っていますか?