【发布时间】:2017-03-06 02:49:59
【问题描述】:
我发现CFNumberFormatterCreateStringWithNumber 存在问题。我用this Apple code example:
// Works fine with float:
float n = 1.20;
CFNumberRef value = CFNumberCreate(NULL, kCFNumberFloatType, &n);
CFLocaleRef currentLocale = CFLocaleCopyCurrent();
// Create different number formatters
CFNumberFormatterRef decimalFormatter = CFNumberFormatterCreate(NULL, currentLocale, kCFNumberFormatterDecimalStyle);
CFStringRef decimalString = CFNumberFormatterCreateStringWithNumber(NULL, decimalFormatter, value);
// Using an INT I see an issue
int n = 892385;
CFNumberRef value = CFNumberCreate(NULL, kCFNumberSInt32Type, &n);
CFLocaleRef currentLocale = CFLocaleCopyCurrent();
// Create different number formatters
CFNumberFormatterRef decimalFormatter = CFNumberFormatterCreate(NULL, currentLocale, kCFNumberFormatterDecimalStyle);
CFStringRef decimalString = CFNumberFormatterCreateStringWithNumber(NULL, decimalFormatter, value);
/// release, release, release
我在使用 INT 值(而不是浮点数)时看到的错误是:
<CFNumber 0x5ac27 [0x7fff9856ed80]>{value = +1452, type = kCFNumberSInt32Type}
2017-03-05 21:42:06.789577 HID_Dumper[4390:150864] -[__NSCFNumber _getCString:length:multiplier:]: unrecognized selector sent to instance 0x2e4027
【问题讨论】:
标签: c macos core-foundation cftypes