Objective-C中如何将NSMutableArray的元素设置为UILabel?

How to set the elements of NSMutableArray to UILabel in Objective-C?

我是 IOS 的新手。我已经将数据设置为NSMutableArray。我想获取 NSMutableArrayelements 并将其设置为 UILabel,如下所示。

self.RedValue.text = [LEDstate objectAtIndex:0];

但由于以下原因它崩溃了:

2015-03-04 19:01:24.384 BLE_Running[1610:870444] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x14561760'

如何在Objective-C中将NSMutableArray的元素设置为UILabel?

确保将 NSString 对象分配给 self.RedValue.text

id objectFromArray = [LEDstate objectAtIndex:0];
self.RedValue.text = [NSString stringWithFormat:@"%@",objectFromArray];

编辑

我们需要将 NSString 对象分配给标签,因此,最好将存储在数组中的对象(无论它是什么,例如整数、NSNumber 等)转换为 NSString 对象,然后将其分配给标签, 我们可以将 NSNumber 对象转换为字符串,例如

NSNumber *objectFromArray = [LEDstate objectAtIndex:0];
NSString *stringValueOfNumber = [objectFromArray stringValue]

您正在尝试将整数传递给字符串,Label 接受字符串而不是整数,

NSMutableArray *mutableArray = [[NSMutableArray alloc]init];

    // Add Bool to Array
    [mutableArray addObject:[NSNumber numberWithBool:YES]];

    // Add number to Array
    [mutableArray addObject:[NSNumber numberWithInt:1]];

    // Add String to Array
    [mutableArray addObject:@"String"];

    // Create a lable to Show result
    UILabel *lable = [[UILabel alloc]init];
    lable.frame = CGRectMake(0, 0, 100, 30);
    lable.center = self.view.center;
    [self.view addSubview:lable];


    // set lable text from Mutable array

    lable.text = [[mutableArray objectAtIndex:0] stringValue]; //Bool

                    //or
    lable.text = [[mutableArray objectAtIndex:1] stringValue]; //int

                    //or
    lable.text = [mutableArray objectAtIndex:2]; //string

您的数组包含 NSNumber 个对象而不是 NSString 个对象。您不能以这种方式将 NSNumber 分配给标签的文本 属性。您需要先将其转换为字符串。为此,您可以使用 NSNumber 对象的 stringValue 属性。

self.RedValue.text = [[LEDstate objectAtIndex:0] stringValue];