如何将数组值转换为布尔值

时间:2015-10-15 07:47:04

标签: objective-c arrays xcode6 boolean

我有一个像这样的数组

myArray=[0,0,1];

我想将此数组值转换为布尔值,如下所示

myArray=[false,false,true];

我将数组值分配给字符串

mystring=[myarray objectAtIndex:0];

如果可能,我也可以将0,1s转换为布尔值。

2 个答案:

答案 0 :(得分:1)

您可以保留存储值的方式。无论您存储的数字大于1,当您检索YES类型时,它都会被视为BOOL。但是,如果您将其检索为NSIntegerint,它会为您提供实际数字。因此,使用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";