get type of NSNumber

后端 未结 12 615
鱼传尺愫
鱼传尺愫 2020-11-29 02:33

I want to get the type of NSNumber instance.

I found out on http://www.cocoadev.com/index.pl?NSNumber this:

 NSNumber *myNum = [[NSNumber alloc] initWithB         


        
12条回答
  •  北荒
    北荒 (楼主)
    2020-11-29 02:53

    You can get the type this way, no string comparisons needed:

    CFNumberType numberType = CFNumberGetType((CFNumberRef)someNSNumber);
    

    numberType will then be one of:

    enum CFNumberType {
       kCFNumberSInt8Type = 1,
       kCFNumberSInt16Type = 2,
       kCFNumberSInt32Type = 3,
       kCFNumberSInt64Type = 4,
       kCFNumberFloat32Type = 5,
       kCFNumberFloat64Type = 6,
       kCFNumberCharType = 7,
       kCFNumberShortType = 8,
       kCFNumberIntType = 9,
       kCFNumberLongType = 10,
       kCFNumberLongLongType = 11,
       kCFNumberFloatType = 12,
       kCFNumberDoubleType = 13,
       kCFNumberCFIndexType = 14,
       kCFNumberNSIntegerType = 15,
       kCFNumberCGFloatType = 16,
       kCFNumberMaxType = 16
    };
    typedef enum CFNumberType CFNumberType;
    

提交回复
热议问题