我有一个像这样的数组
myArray=[0,0,1];
我想将此数组值转换为布尔值,如下所示
myArray=[false,false,true];
我将数组值分配给字符串
mystring=[myarray objectAtIndex:0];
如果可能,我也可以将0,1s转换为布尔值。
答案 0 :(得分:1)
您可以保留存储值的方式。无论您存储的数字大于1,当您检索YES
类型时,它都会被视为BOOL
。但是,如果您将其检索为NSInteger
或int
,它会为您提供实际数字。因此,使用booleanValue
方法进行检索:
NSNumber *value1 = myArray[0];
BOOL boolValue1 = [value1 booleanValue];
答案 1 :(得分:0)
简短回答在下面的代码中:
// Do nothing
答案很长:
您没有所描述的数组。正确的代码是:
myArray=@[ @0, @0, @1]; // NSArray instance of NSNumber instances.
您不希望拥有您所描述的数组。正确的代码是:
myArray=@[ @NO, @NO, @YES]; // NSArray instance of NSNumber instances.
由于两个NSNumber
个实例都包含整数值或布尔值are the same,[@0 boolValue]
将返回NO
而[@1 boolValue]
将返回YES
。所以你已经拥有了,你想得到什么。
您真正的问题是将值(整数或布尔值,而布尔值是整数值)转换为字符串。您可以使用数字格式化程序或仅使用条件表达式:
BOOL b = [myarray[0] boolValue];
mystring = b?@"true":@"false";