目标C:
我有多个double,long long,NSString和int类型的变量,我想把它放在一个数组中,作为CSV文件中的单行打印
NSArray * ValArray = [NSArray arrayWithObjects:var1,var2,var3,var4,var5,nil];
这里var1的类型为double,var2,var3的类型为long long。
这给了我一个语法错误,说明"无法初始化类型' id _NonNull'左边的左值"在var1
我是Objective C中的新手,无法弄清楚我做错了什么。
答案 0 :(得分:5)
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;
附注:变量名称应以小写字母开头。
答案 1 :(得分:1)
将var1,var2,var3转换为NSNumber将解析它。