我从Web服务获取数据并将其显示在tableview中,并在按钮点击时在tableview上我将数据id存储在nsmutablearray中。然后我将存储在nsmutable数组中的点击数据id与cellForRowAtIndexPath函数中的Web服务数据进行比较。
错误:
在tableview中的代码比较中,找不到异常索引。
按下按钮我尝试了所有这些::::
[myidmutablearray addObject:[[webservicedata valueForKey:@"id"]objectAtIndex:clickedButtonIndexPath.row]];
[myidmutablearray insertObject:[webservicedata valueForKey:@"id"] atIndex:clickedButtonIndexPath.row];
[myidmutablearray replaceObjectAtIndex:clickedButtonIndexPath.row withObject:[webservicedata valueForKey:@"id"]];
在CellForRowAtIndexPath我尝试了这个,
if([myidmutablearray count]!=0)
{
if([[webservicedata valueForKey:@"id"] containsObject:[myidmutablearray objectAtIndex:indexPath.row]])
NSLog(@"not empty");
}
else
NSLog(@"empty");
答案 0 :(得分:0)
NSMutableArray不是具有无限数量条目的数组,您可以指定其索引。
在向NSMutableArray添加对象时,添加的第一个条目将在索引0处。无论您在添加时为其提供什么索引。
我认为你真正想要的是一个NSDictionary,其密钥是由indexpath.row创建的NSNumber。然后,您可以稍后再次使用NSNumber检索它。
保存时,请执行以下操作:
//defining somewhere
NSMutableDictionary *myIdMutableDictionary;
//then in the button click:
[myIdMutableDictionary setObject:[webservicedata valueForKey:@"id"] forKey:@(indexPath.row)];
//then later to check it, you test value would be in this:
[[myIdMutableDictionary objectForKey:@(indexPath.row)