Это довольно простой интерфейс, который обрабатывает только приложение appdelegate и viewcontroller.UITableView сбой без ошибок
У меня есть UITableView, который отображает от 1 до 13 изображений превью для указанного пациента. Я использую пользовательскую ячейку, содержащую один UIImageView для отображения больших пальцев. UIImageView в ячейке загружается в cellForRowAtIndexPath из NSMutableArray, который был загружен через HTTP-запрос.
Пальцы для каждого пациента на HTTP-сервере находятся в папке пациента, сгруппированы в 1-3 папки с именами серий. Когда пациент выбирается из popOver на iPad, в представлении таблицы больших пальцев загружается первая серия, найденная в папке пациентов на HTTP-сервере.
Пользователь может затем выбрать другую серию для пациента из popOver серийных имен. В это время большие пальцы для выбранной серии извлекаются по HTTP-запросу и загружаются в представление таблицы больших пальцев.
Все работает отлично, за исключением того, что у меня есть 1 пациент, где первая серия, полученная после выбора пациента из пациента popOver, работает, но изменение серии или повторная выборка уже загруженной серии приводит к сбою приложения. Это не сбой в симуляторе, а только iPad. Когда вы запускаете из xCode, я вижу, что авария происходит после того, как последний вызов cellForRowAtIndexPath заканчивается без каких-либо ошибок, отображаемых в консоли. Если я пройду мимо этого момента, он немедленно сработает.
Я реализовал методы делегирования памяти в методах appdelegate и viewController. Я не получаю никаких предупреждений о памяти.
Я отправляю свой метод cellForRowAtIndexPath ниже, на всякий случай, когда я теряю что-то при загрузке таблицы.
Я ищу предложения о том, что еще можно подозревать помимо памяти. Есть ли способ получить представление о том, что приводит к сбою без консоли?
Заранее спасибо за любую помощь
Джон
Update: Я добавил свое количество строк в методе раздела, который не должен быть проблемой.
Теперь я убежден, что проблема не обязательно связана с моим кодом, а с изображениями. За исключением этого одного пациента, я могу менять пациентов и/или серии изображений пациентов в течение всего дня без каких-либо проблем. Что-то об одном или нескольких изображениях, связанных с этим пациентом, есть в iPad. У каждого пациента есть 1 или 2 рентгена, первоначальный размер которых составляет от 1 до 2 мегабайт. Я уменьшаю их размер файла (качество сжатия) до менее 300 кб при сохранении их на дисковые файлы для извлечения iPad. Общее количество, импортируемое в одну серию, составляет не более 1,5 МБ. По крайней мере, это общий размер файла диска. Я не знаю, что на самом деле происходит с размером файла, как только iPad их получит.
Есть ли способ проверить импортированные изображения для размера или повреждения, прежде чем загружать их в представление таблицы для отображения?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
ImageCell *cell = [thumbsTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[ImageCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.pImage.image = [thumbsArray objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [thumbsArray count];
}
Проверьте размер 'thumbsArray' и сравните с' tableView: numberOfRowsInSection: '. Возможно, вам захочется опубликовать еще кое-что из этого кода, чтобы люди могли посмотреть. – greg
numberOfRowsInSection не должно быть проблемой, так как он возвращает значение thumbsArray. Я уверен, что моя проблема связана с памятью из-за того, что изображения либо большие, либо я неправильно управляю ими. Есть ли способ проверить размеры изображений? – user278859
Я добавляю свой вопрос относительно тестирования изображения на главный вопрос. – user278859