0

原始的な値の文字列を作成するにはどうすればよいですか?さて、構造体などは大きな問題かもしれません。しかし、浮動小数点数の場合、整数

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html

注:これは、デバッグ、単体テスト、および楽しみのためだけのものです。

4

1 に答える 1

1

これは最も基本的なことをカバーしています..それで十分かどうかはわかりません...多分私は何か明白なものを見落としていますか?

#define _PRIMITIVE_AS_STRING(value) \
({\
    const char *valueType = @encode(__typeof__(value));\
    NSString *format = [NSString stringWithFormat:@"%s", printFormatTypeForObjCType(valueType)];\
    NSString *valueAsString = [NSString stringWithFormat:format, value];\
    valueAsString;\
})

static const char * printFormatTypeForObjCType(const char *type)
{
    if(strcmp(type, @encode(BOOL)) == 0)
        return "%d";
    else if(strcmp(type, @encode(int)) == 0)
        return "%d";
    else if(strcmp(type, @encode(unsigned int)) == 0)
        return "%u";
    else if(strcmp(type, @encode(long)) == 0)
        return "%li";
    else if(strcmp(type, @encode(unsigned long)) == 0)
        return "%lu";
    else if(strcmp(type, @encode(long long)) == 0)
        return "%lli";
    else if(strcmp(type, @encode(unsigned long long)) == 0)
        return "%llu";
    else if(strcmp(type, @encode(float)) == 0)
        return "%f";
    else if(strcmp(type, @encode(double)) == 0)
        return "%f";
    else
        return "%d";
}
于 2013-03-19T16:07:33.437 に答える