无法使用 double 类型的左值初始化 'id _NonNull' 类型的参数
Cannot initialize a parameter of type 'id _NonNull' with an lvalue of type double
Objective C:
我有多个类型为 double、long long、NSString 和 int 的变量,我想将它们放入一个数组中,以便在 CSV 文件中作为单行打印
NSArray *ValArray = [NSArray arrayWithObjects: var1, var2, var3 , var4, var5, nil];
这里var1是double类型,var2,var3是long long类型
这给了我一个语法错误,说 "Cannot initialize a parameter of type 'id _NonNull' with an lvalue of type double" at var1
我是 Objective C 的新手,无法弄清楚自己做错了什么。
将 var1、var2、var3 转换为 NSNumber 即可解决。
Objective-C中NSArray
(和NSDictionary
)的内容必须是对象。所有标量类型 int
double
等都不是对象。
有一个简单的解决方案:
将所有标量类型包装在快捷方式中 NSNumber
初始值设定项 @()
double var1 = 12.0;
NSString *var2 = @"Foo";
NSArray *valArray = [NSArray arrayWithObjects: @(var1), var2, nil];
或更短
NSArray *valArray = @[@(var1), var2];
要从数组中取回 double
类型,您必须编写
double var3 = valArray[0].doubleValue;
旁注:变量名应该以小写字母开头。
Objective C:
我有多个类型为 double、long long、NSString 和 int 的变量,我想将它们放入一个数组中,以便在 CSV 文件中作为单行打印
NSArray *ValArray = [NSArray arrayWithObjects: var1, var2, var3 , var4, var5, nil];
这里var1是double类型,var2,var3是long long类型
这给了我一个语法错误,说 "Cannot initialize a parameter of type 'id _NonNull' with an lvalue of type double" at var1
我是 Objective C 的新手,无法弄清楚自己做错了什么。
将 var1、var2、var3 转换为 NSNumber 即可解决。
Objective-C中NSArray
(和NSDictionary
)的内容必须是对象。所有标量类型 int
double
等都不是对象。
有一个简单的解决方案:
将所有标量类型包装在快捷方式中 NSNumber
初始值设定项 @()
double var1 = 12.0;
NSString *var2 = @"Foo";
NSArray *valArray = [NSArray arrayWithObjects: @(var1), var2, nil];
或更短
NSArray *valArray = @[@(var1), var2];
要从数组中取回 double
类型,您必须编写
double var3 = valArray[0].doubleValue;
旁注:变量名应该以小写字母开头。