Objective c NSMutableArray检查项目是否存在
我有一个NSMutableArray,包含100多个字符,其中我用以下内容填充了一个表:Objective c NSMutableArray检查项目是否存在,objective-c,nsmutablearray,Objective C,Nsmutablearray,我有一个NSMutableArray,包含100多个字符,其中我用以下内容填充了一个表: int rowCount = indexPath.row; Character *character = [self.characterArray objectAtIndex:rowCount]; cell.textLabel.text = character.name; cell.detailTextLabel.text = character._id; 然后,我得到了一个单独的NSMutableAr
int rowCount = indexPath.row;
Character *character = [self.characterArray objectAtIndex:rowCount];
cell.textLabel.text = character.name;
cell.detailTextLabel.text = character._id;
然后,我得到了一个单独的NSMutableArray,其中包含一个_id和中的相邻值,但是这个数组只有大约8个随机id为的值
基本上我想检查字符。\ id是否存在于第二个数组中,它将在表上显示一个复选标记
我试过做:
Neighbour *neighbour = [self.neighbourArray objectAtIndex:rowCount];
if (character._id == neighbour._id && neighbour.neighbour == 1){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}else{
cell.accessoryType = None;
}
但它会使应用程序崩溃(因为我猜它只有8个100的值)
有没有一个简单的方法来解决这个问题,还是有更好的方法来检查
谢谢,如果您有任何建设性的建议,我们将不胜感激,我是Xcode的新手。目前您正在检查相邻字符对象的同一索引,您应该在整个数组中检查它 你可以这样试试
-(BOOL)check :(Character *) character
{
for(Neighbour *neighbour in self.neighbourArray )
{
if(character._id == neighbour._id && neighbour.neighbour == 1)
return TRUE;
}
return FALSE;
}
现在只需在tableviewMethod中调用此方法
int rowCount = indexPath.row;
Character *character = [self.characterArray objectAtIndex:rowCount];
if ([self check:character]){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}else{
cell.accessoryType = None;
}
当前您正在检查相邻字符对象的同一索引,您应该在整个数组中检查它 你可以这样试试
-(BOOL)check :(Character *) character
{
for(Neighbour *neighbour in self.neighbourArray )
{
if(character._id == neighbour._id && neighbour.neighbour == 1)
return TRUE;
}
return FALSE;
}
现在只需在tableviewMethod中调用此方法
int rowCount = indexPath.row;
Character *character = [self.characterArray objectAtIndex:rowCount];
if ([self check:character]){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}else{
cell.accessoryType = None;
}
您可以使用KVC来避免枚举:
BOOL result = [[neighbours valueForKey:@"_id"] containsObject: character._id];
您可以使用KVC来避免枚举:
BOOL result = [[neighbours valueForKey:@"_id"] containsObject: character._id];
我尝试了一下,但在第一个块上出现了“控制可能达到非无效函数的结尾”错误,我猜是因为它没有给出明确的返回。是的,解决了,检查更新的答案。我尝试了一下,但在第一个块上出现了“控制可能达到非无效函数的结尾”错误,我猜是因为它没有给出明确的返回。是的,解决了,检查更新的答案。非常优雅的解决方案。谢谢,这解决了所有问题。非常优雅的解决方案。谢谢,这解决了所有问题。