提问人:alex 提问时间:4/18/2019 最后编辑:Surbhi Gargalex 更新时间:4/18/2019 访问量:67
使用 StringWithFormat 使用 float 和 long 生成不同的结果
Using StringWithFormat generates different results using float and long
问:
我创建了一个包含 4 个变量和 4 个字符串的类,它们与 4 个变量相同,但作为字符串,
在我声明的 h 文件中:
@property (assign) float num1;
@property (assign) float num2;
@property (assign) float num3;
@property (assign) long num4;
@property (nonatomic, assign) NSString *num1String;
@property (nonatomic, assign) NSString *num2String;
@property (nonatomic, assign) NSString *num3String;
@property (nonatomic, assign) NSString *num4String;
在 init 方法中,我传递了一个字典,我用它来创建变量,如下所示:
num1 = [[dict objectForKey:@"num1"] floatValue];
num2 = [[dict objectForKey:@"num2"] floatValue];
num3 = [[dict objectForKey:@"num3"] floatValue];
num4 = [[dict objectForKey:@"num4"] longValue];
num1String = [NSString stringWithFormat: @"%.2f", num1];
num2String = [NSString stringWithFormat: @"%.2f", num2];
num3String = [NSString stringWithFormat: @"%.2f", num3];
num4String = [NSString stringWithFormat:@"%ld",num4];
当我在这些行之后放置一个断点并检查字符串类型时,它被连接了,前 3 个是 NSString,num4String 是 NSMutableString !
当我尝试将此字符串传递给另一个变量时,我的问题实际上是
NSString *copyOfNum4String = model.num4String;
我得到的不是字符串
Printing description of copyOfNum4String:
(NSString *) copyOfNum4String = 0x0000600001cb0740
这导致应用程序崩溃,因为我尝试做的下一件事是获取最后 4 个字符。
有人可以解释一下发生了什么,以及如何解决这个问题吗?(它必须很长,因为数字是 13 个字符长)
编辑: 这是值的字典打印:
[0] (null) @"num1" : (long)2018420678770
key NSTaggedPointerString * @"num1" 0xb79527f3826c0fa9
value __NSCFNumber * (long)2018420678770 0xa1c30c3a46fcec1d
答: 暂无答案
评论
self.num1 =
_num1 =
dictionary
dictionary