2

Objective-cでは、この関数プロトタイプがあります:-(NSString *)formatSQL:(NSString *)sql、...この関数に任意のタイプのパラメーター(NSString、NSNumber、integer、float)を渡すことができます。パラメータがオブジェクト(NSString ..)またはプリミティブ(integer ...)の場合、関数?ありがとうBrochPirate

4

1 に答える 1

5

複数の型を受け入れるパラメーターを使用する場合は、Obj-C オブジェクトを使用することによってのみ安全に行うことができます。つまりid、型として使用することを意味します。などidと安全floatに混ざり合うことはできません。integer

すべてfloatの とintをでラップするとNSNumber、次のようなメソッドを作成できます。

- (NSString *)formatSQL:(id)obj
{
    if ([obj isKindOfClass:[NSString class]]) {
        // Format as a string
    }
    else if ([obj isKindOfClass:[NSNumber class]]) {
        // Further processing will be required to differentiate between ints and floats
    }
}

の使用にはいくつかの注意点がありますが、isKindOfClass:これは出発点として役立つはずです。

于 2010-04-29T06:48:01.000 に答える