带NSArray的UITableView给出了;索引越界“;错误
我有一些使用TableView的经验。这一次,我尝试从数组中加载它(从技术上讲,是从字典中加载的,但是allKeys参数是一个NSArray),但是,我得到了这个异常带NSArray的UITableView给出了;索引越界“;错误,uitableview,nsarray,Uitableview,Nsarray,我有一些使用TableView的经验。这一次,我尝试从数组中加载它(从技术上讲,是从字典中加载的,但是allKeys参数是一个NSArray),但是,我得到了这个异常 -[__NSArrayI objectAtIndex:]: index 10 beyond bounds [0 .. 9] 现在,我的数组有11个键长,这意味着它将被计数为10(因为Obj-C也计数为0)。这里写着计数是9。我尝试了几种不同的方法: 将字典的初始化移动到-(void)awakeFromNib 使用所有键创建一个
-[__NSArrayI objectAtIndex:]: index 10 beyond bounds [0 .. 9]
现在,我的数组有11个键长,这意味着它将被计数为10(因为Obj-C也计数为0)。这里写着计数是9。我尝试了几种不同的方法:
- 将字典的初始化移动到
-(void)awakeFromNib
- 使用所有键创建一个单独的
NSArray
- 仅列出
11
10
,我会发现缺少一个对象:
断点告诉11
使用10项时没有“加速度X”项,请参见
与返回行数的方法相同,
NSLog
的说法与10不同。事实上,数组的长度是10个项目。上面的评论并不是说“你应该删除“加速X”使它有10个项目长”,而是说“你错误地认为你的数组有11个项目长”
如果看不到更多的代码,就很难说出这里到底发生了什么;但无论如何,您不应该使用-allValues
,因为该数组中的顺序未定义,因此不适合用于支持表视图
相反,您应该按照希望显示的顺序保留字典的键数组,然后直接引用\u items[key]
例如:
_keys =
@[
@"Red",
@"Orange",
@"Yellow",
@"Green",
@"Blue",
@"Indigo",
@"Violet"
];
_dictionary =
@{
@"Blue": @"Battle",
@"Green": @"Gave",
@"Indigo": @"In",
@"Orange": @"Of",
@"Red": @"Richard",
@"Violet": @"Vain"
@"Yellow": @"York",
};
- (NSString *)labelTextForIndexPath:(NSIndexPath *)indexPath
{
return _keys[indexPath.row];
}
- (NSString *)detailLabelTextForIndexPath:(NSIndexPath *)indexPath
{
return _dictionary[_keys[indexPath.row]];
}
NSArray
知道如何计数,为什么不发布数组填充代码>现在,我的数组有11个键长您的问题似乎是它只有10个键长。我可以向您保证,该数组中只有10个元素。请在出现问题的语句之前记录数组,以查看其内容。请确保其中一个键不是重复的。可能您的第11个元素是null而不是@“0”,在这种情况下,数组将被视为有10个元素,因为数组以null结尾。感谢您的回答,我稍后将尝试创建一个C数组+dict。效果很好,谢谢