在NSMutableArray中查找对象数

时间:2011-09-18 14:29:04

标签: objective-c

我在计算nsmutablearray中的对象数时遇到问题。我有这段代码:

  - (UITableViewCellAccessoryType)tableView:(UITableView *)tableView  accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath 
 {    

NSUInteger numObjects = [selected count];// selected is nsmutablearray

for ( int i = 0; i<numObjects; i++) 
{
    NSLog(@"%@ == %@ , nr.object =%@",[AnotherArray objectAtIndex:indexPath.row], [selektuara objectAtIndex:i], numObjects); // here stops the by reporting this: Program recived signal: "EXC_BAD_ACCESS"


    if ([selected objectAtIndex:i] == [AnotherArray objectAtIndex:indexPath.row]) 
    {
        NSLog(@"%@",[selected objectAtIndex:i]);
        return UITableViewCellAccessoryCheckmark;
    }
    else
    {
        return UITableViewCellAccessoryNone;
    }
  }
 }

当我删除NSLog的对象数量时,它只计算一个对象并仅比较它。 那么还有其他人如何获得这个数字吗? 感谢。

2 个答案:

答案 0 :(得分:2)

使用NSLog时出错:

NSLog(@"%@ == %@ , nr.object =%d",[AnotherArray objectAtIndex:indexPath.row], [selektuara objectAtIndex:i], numObjects);

由于numObjectsNSUInteger,您应使用%d来打印其值。

比较时出错:

if ([[selected objectAtIndex:i] compare:[AnotherArray objectAtIndex:indexPath.row]] == NSOrderedSame)

您不应使用==来比较Objective-C中的对象

答案 1 :(得分:1)

您不得尝试使用%@格式说明符输出无符号整数。请改用%u