我在计算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的对象数量时,它只计算一个对象并仅比较它。 那么还有其他人如何获得这个数字吗? 感谢。
答案 0 :(得分:2)
使用NSLog
时出错:
NSLog(@"%@ == %@ , nr.object =%d",[AnotherArray objectAtIndex:indexPath.row], [selektuara objectAtIndex:i], numObjects);
由于numObjects
为NSUInteger
,您应使用%d
来打印其值。
比较时出错:
if ([[selected objectAtIndex:i] compare:[AnotherArray objectAtIndex:indexPath.row]] == NSOrderedSame)
您不应使用==
来比较Objective-C中的对象
答案 1 :(得分:1)
您不得尝试使用%@
格式说明符输出无符号整数。请改用%u
。