Найти количество объектов в NSMutableArray - PullRequest
0 голосов
/ 18 сентября 2011

У меня проблема с подсчетом номеров объектов в 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 ]

2 голосов
/ 18 сентября 2011

Ошибка при использовании 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 голос
/ 18 сентября 2011

Вы не должны пытаться вывести целое число без знака с помощью спецификатора формата %@.Вместо этого используйте %u.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...