NSNumber *abc = [[NSNumber alloc] initWithInt:123];
NSString *number = [NSString stringWithFormat:@"%d", abc];
number
的結果是31619!如何解決它?將NsNumber轉換爲nsString時的目標C錯誤
NSNumber *abc = [[NSNumber alloc] initWithInt:123];
NSString *number = [NSString stringWithFormat:@"%d", abc];
number
的結果是31619!如何解決它?將NsNumber轉換爲nsString時的目標C錯誤
這不是一個客觀的C缺陷,你正在使用錯誤的specifier-
使用 -
NSString *number = [NSString stringWithFormat:@"%@", abc];
沒錯。 NSNumber是一個適當的對象,因此'%@'可以預期插入其字符串值。 '%d'需要一個整數,它是一個基本類型而不是一個對象。 – echristopherson
你必須返回的intValue:
NSNumber *abc = [[NSNumber alloc] initWithInt:123];
NSString *number = [NSString stringWithFormat:@"%i", [abc intValue]];
你''%符需求以匹配你傳遞的'stringWithFormat:'。 – dasblinkenlight