2012-06-06 72 views
1

我有一個MutableArray填充有從一個數據庫值:NSArray的錯誤:NSCFArray objectAtIndex索引(5)超過界限(5)

NSMutableArray *objectsArray = [[NSMutableArray alloc] init]; 
for (int n=0; n<[self.array count]; n++) { 
    [objectsArray addObject:[[self.array objectAtIndex:n] objectForKey:@"Name"]]; 
    [objectsArray addObject:[[self.array objectAtIndex:n] objectForKey:@"Name_En"]]; 
} 

我顯示在標籤上的值,象這樣:

cell.textLabel.text = [[[dic objectForKey:@"d"] objectAtIndex:indexPath.row] objectForKey:@"Name"]; 
cell.detailTextLabel.text = [[[dic objectForKey:@"d"] objectAtIndex:indexPath.row] objectForKey:@"Name_En"]; 

到目前爲止,該應用程序工作正常。它在不拋出異常的情況下開始,值在標籤中。但如果我開始滾動應用程序崩潰,並且出現以下錯誤:

Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFArray objectAtIndex:]: index (5) beyond bounds (5)' 

爲什麼會發生此錯誤?

回答

1

你可能會說,你有6行的表,但實際上你有5這樣做的理由例外是表視圖詢問小區indexPath.row與值5,這意味着它認爲有6 [0:5]行,但字典中的數組有5項[0:5]。

+0

我該如何解決這個問題?因爲字典 – Bashud

+0

中只有5個值,請查看'-tableView:numberOfRowsInSection:'方法,那麼您必須返回數組中的項目數。 – graver

+0

我返回它這樣的 - (NSInteger的)的tableView:(UITableView的*)的tableView numberOfRowsInSection:(NSInteger的)部分 { 返回[objectsArray計數]; } – Bashud

0

我正面臨着與您之前提到的相同的問題。 後來我這樣做: -

cell.TitleLabel.text=[[AllUserDataArray objectAtIndex:indexPath.row]objectAtIndex:0]; 
cell.DateAndTimeLabel.text=[[AllUserDataArray objectAtIndex:indexPath.row]objectAtIndex:1]; 
cell.InfoLabel.text=[[AllUserDataArray objectAtIndex:indexPath.row]objectAtIndex:2]; 
if([[AllUserDataArray objectAtIndex:indexPath.row] count] >3) { 

NSData *imageData=[[AllUserDataArray objectAtIndex:indexPath.row]objectAtIndex:3]; 
UIImage *travelImage=[UIImage imageWithData:imageData]; 
cell.ImgView.image=travelImage; 

這是工作的罰款和邏輯正確的也(我是這麼認爲的):)

希望這會幫助你。

0

我面臨着同樣的問題,我得到了解決方案:

的NSMutableArray * objectsArray = [[NSMutableArray裏的alloc] INIT];

objectsArray=nil; 

for (int n=0; n<[self.array count]; n++) { 
    [objectsArray addObject:[[self.array objectAtIndex:n] objectForKey:@"Name"]]; 
    [objectsArray addObject:[[self.array objectAtIndex:n] objectForKey:@"Name_En"]]; 
} 
相關問題