将NSMutableArray对象加载到标签的IBCollection中

时间:2014-04-23 10:22:09

标签: ios objective-c ios7

我的问题是,当我使用快速枚举从数组中加载对象时,如下所示:

    for(SetOfObjects *set in _myArray){
    NSLog (@"%@"[set anObject];
    }

它会毫无问题地打印出我指定的对象,但是当需要将这些对象分配给标签的NSArray时。最后一个对象返回0。 像这样:

    for(SetOfObjects *set in _myArray){
     for(UILabel *label in _arrayOfLabels){
      int i = [set intObject];
       NSString *string = [NSString stringWithFormat:@"%i",i];
       label.text = string;
      }
     }

我想,我在这里出错了。代码有效,但问题是所有标签都设置为0。

欢迎任何提示。

1 个答案:

答案 0 :(得分:4)

您在每个SetOfObjects实例中迭代标签,而实际上您希望同时迭代两个数组,这是使用快速枚举无法完成的

而是恢复为两个数组的索引访问:

NSInteger count = [_myArray count];
NSAssert([_arrayOfLabels count] == count, @"Different array sizes!");
for (NSInteger index = 0; index < count; index++) {
    SetOfObjects *set = _myArray[index];
    UILabel *label = _arrayOfLabels[index];
    int i = [set intObject];
    NSString *string = [NSString stringWithFormat:@"%i",i];
    label.text = string;
}

请注意断言以检查两个数组的大小是否相同。

编辑:糟糕,i是一个糟糕的变量名称,可供索引选择...