Objective c 在多维数组中访问对象,Obj-c
我有一个阵列容纳其他阵列,但无法使其工作!!我试图从子数组中提取字符串值,我可以首先访问第一个子数组没有问题,但是当我尝试将标签更改为第二个数组中的对象时,我的程序崩溃了,我该如何处理这个问题Objective c 在多维数组中访问对象,Obj-c,objective-c,ios,multidimensional-array,Objective C,Ios,Multidimensional Array,我有一个阵列容纳其他阵列,但无法使其工作!!我试图从子数组中提取字符串值,我可以首先访问第一个子数组没有问题,但是当我尝试将标签更改为第二个数组中的对象时,我的程序崩溃了,我该如何处理这个问题 int count = 0; // variable to access the required sub array NSArray* myArray; // array holding other arrays UILabel* mylabel; // label to display my st
int count = 0; // variable to access the required sub array
NSArray* myArray; // array holding other arrays
UILabel* mylabel; // label to display my string values from the array s
-(void) setLabel
{
NSArray* subArray = [myArray objectAtIndex: count];
[myLabel setText:[subArray objectAtIndex:1]]; // this works fine
}
-(void) changeLabelToNextArray
{
count ++
[self setLabel]; //program crashes here when try to load label from next array
}
也许您可以尝试使用C数组:
id myArray[iMax][jMax];
subArray[i][j] = myArray[a][b];
你为什么这么做
[myLabel setText:[subArray objectAtIndex:1]];
如果
NSArray* myArray; // Contains 5 subarrays, each containing 5 strings
UILabel* myLabel1;
UILabel* myLabel2;
UILabel* myLabel3;
UILabel* myLabel4;
UILabel* myLabel5;
int count = 0; // Keeps track of which subarray we are on
- (void)setLabel
{
NSArray* subArray = [myArray objectAtIndex:count];
[myLabel1 setText: [subArray objectAtIndex:0]]
[myLabel2 setText: [subArray objectAtIndex:1]]
[myLabel3 setText: [subArray objectAtIndex:2]]
[myLabel4 setText: [subArray objectAtIndex:3]]
[myLabel5 setText: [subArray objectAtIndex:4]]
count = (count + 1) % 5; // Ensures that count is always 0 to 4
}
现在,无论何时调用setLabel,只要在5个子数组中的每一个子数组中都有5个字符串,那么所有5个标签上的文本都应该更改。hey feanor,我有一个有5个子数组的数组,每个子数组有5个字符串,我试图显示,所以你总共有25个字符串,你想你的方法改变UILabel显示的文本,一次一个?有点,我将有5个标签,希望显示第一个子数组中的5个字符串,然后将5个标签更改为显示第二个子数组中的5个字符串好的,我修改了答案。每当需要更改标签文本时,调用setLabel方法。如果在myArray中的5个子数组中的每一个子数组中都有5个字符串,那么它应该可以工作。我建议添加一些防御机制,以防字符串丢失。类似于if([subArray objectAtIndex:4]){[myLabel5 setText:[subArray objectAtIndex:4]}