#iphone #objective-c #cocoa-touch #uitableview #uiimageview
#iPhone #objective-c #cocoa-touch #uitableview #uiimageview
Вопрос:
У меня есть NSFetchResultsController, который загружает мой tableview.
При первой загрузке приложения в tableview не будет данных для отображения, поэтому я хочу иметь статическое изображение с инструкциями по нему. У меня есть следующий код, и я вызываю этот метод, viewWillAppear
но он работает неправильно. Есть идеи?
- (void)checkIfEmpty
{
if ([self.fetchedResultsController fetchedObjects] > 0)
{
self.defaultImage.hidden = NO;
self.logTableView.hidden = YES;
}
else
{
self.defaultImage.hidden = YES;
self.logTableView.hidden = NO;
}
}
Комментарии:
1. что происходит? что вы видите?
2. «Это неправильно работает» не очень полезно. Что именно он делает, происходит ли сбой, всегда ли он переходит в первую ветвь
if
инструкции, … ваш вопрос недостаточно подробен, чтобы на него можно было ответить должным образом3. Я предполагаю, что у вас есть UIViewController с таблицей внутри него, а не UITableViewController, я прав?
Ответ №1:
[self.fetchedResultsController fetchedObjects] > 0
всегда будет true, потому что даже пустой массив является объектом (и нет nil
).
Вам нужно использовать self.fetchedResultsController.fetchedObjects.count > 0
вместо этого.
Ответ №2:
Попробуйте поместить тот же код в viewDidAppear . Попробуйте использовать alpha = 0 вместо hidden . Попробуйте поместить тот же код в один из ваших методов делегирования tableview. Поскольку вы не объясняете, что именно происходит, я просто выбрасываю туда материал.