Objective C хранит количество строк таблицы в переменной - PullRequest
0 голосов
/ 12 декабря 2010

Я пытаюсь сохранить количество строк в переменной (безуспешно) в переменной (не удалось), я попробовал это:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
 NSNumber *rowsNumber = [NSNumber numberWithInt: ([[self.fetchedResultsController sections] objectAtIndex:section])];
 NSLog(@"%i", rowsNumber);
 return [sectionInfo numberOfObjects];
}

Это не работает и регистрирует только 6-значный номер? Может ли кто-нибудь рискнуть догадаться, как я могу хранить это?

1 Ответ

2 голосов
/ 12 декабря 2010

Objective-C не выполняет автоматическое преобразование не-объектов и объектов. (то есть это не "автоматическая коробка".)

Кроме того, спецификатор формата %i является , а не спецификацией unbox. Итак, если у вас есть NSNumber*num, вы либо делаете

NSLog(@"%@",num) // show as an object

или

NSLog(@"%d",[num intValue]) // show as an int.

Эта строка также неверна:

NSNumber *rowsNumber = [NSNumber numberWithInt: [[self.fetchedResultsController sections] objectAtIndex:section] ];

Прежде всего, [[self.fetchedResultsController sections] objectAtIndex:section] - это объект, который вы только что получили в

id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];

Вы не можете передать его на numberWithInt:. Вы получаете количество строк, используя sectionInfo.numberOfObjects. Итак, строка должна быть

NSNumber *rowsNumber = [NSNumber numberWithUnsignedInteger:sectionInfo.numberOfObjects];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...