我有一个数组持有其他数组,但不能得到这个工作!!我试图从子数组拉字符串值,我可以访问第一个子数组没有问题,但当我尝试改变标签的对象在第二个数组我的程序崩溃任何想法我应该如何处理这个?
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
}
你为什么要这样做?
[myLabel setText:[subArray objectAtIndex:1]];
如果
- subArray没有索引为1的对象
- 索引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个子数组中。
也许你可以尝试使用C数组:
id myArray[iMax][jMax];
subArray[i][j] = myArray[a][b];