Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将NSMutableArray对象加载到标签集合中_Ios_Objective C_Ios7 - Fatal编程技术网

Ios 将NSMutableArray对象加载到标签集合中

Ios 将NSMutableArray对象加载到标签集合中,ios,objective-c,ios7,Ios,Objective C,Ios7,我的问题是,当我使用快速枚举从数组中加载对象时,如下所示: for(SetOfObjects *set in _myArray){ NSLog (@"%@"[set anObject]; } 它将毫无问题地打印出我指定的对象,但是,当需要将这些对象分配给一组标签时。最后一个对象返回为0。 像这样: 我想,我在这里出了问题。代码可以工作,但问题是所有标签随后都设置为0 欢迎任何提示。您正在迭代每个SetOfObject实例中的标签,而实际上您希望同时迭代两个数组,这是使用

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

    for(SetOfObjects *set in _myArray){
    NSLog (@"%@"[set anObject];
    }
它将毫无问题地打印出我指定的对象,但是,当需要将这些对象分配给一组标签时。最后一个对象返回为0。 像这样:

我想,我在这里出了问题。代码可以工作,但问题是所有标签随后都设置为0


欢迎任何提示。

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

而是恢复到对两个阵列的索引访问:

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;
}
请注意用于检查两个数组大小是否相同的断言


编辑:哎呀,为索引选择的变量名不好…

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

而是恢复到对两个阵列的索引访问:

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;
}
请注意用于检查两个数组大小是否相同的断言


编辑:哎呀,为索引选择的变量名不好…

您正在为所有标签设置一个来自_myArray最后一个元素的值。是吗?是的,看起来是这样,这就是我所想的;这一行发生了什么?它从_myArray中获取一个整数对象,并将其设置为i的int,如果我在哪里用NSLog打印它,它将显示不同的数字,这取决于首先从数组中提取的内容。这本质上与我在这里进行的第一次枚举相同。对于在_myArray{NSLog@%i,[set intObject];}中设置的eToFobjects*,您正在将_myArray的最后一个元素的值设置为all labels。是吗?是的,看起来是这样,这就是我所想的;这一行发生了什么?它从_myArray中获取一个整数对象,并将其设置为i的int,如果我在哪里用NSLog打印它,它将显示不同的数字,这取决于首先从数组中提取的内容。这本质上与我在这里进行的第一次枚举相同。对于_myArray{NSLog@%i,[set intObject];}中设置的eToFobjects*感谢您的反馈,在我将其全部编码时立即生效。我一点也不知道。谢谢你的反馈,当我把它全部编码进去的时候,它立刻就工作了。我一点也不知道。