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