Предупреждающее сообщение с подробным просмотром? - PullRequest
0 голосов
/ 22 февраля 2010

Мой код выглядит правильно? Я пытаюсь загрузить данные в мое табличное представление и подробное вспомогательное представление. Моя таблица работает нормально, но данные не загружаются в моем подвиде

Под этой строкой появляется предупреждение

nextController.dataItem = [data objectAtIndex:indexPath];

Вот мой RootViewController.m

     // Configure the data for the cell.

    NSDictionary *dataItem = [data objectAtIndex:indexPath.row];
    cell.icon = [UIImage imageNamed:[dataItem objectForKey:@"Icon"]];
    cell.publisher = [dataItem objectForKey:@"Publisher"];
    cell.name = [dataItem objectForKey:@"Name"];


    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
 NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"NextView" bundle:nil];
 nextController.dataItem = [data objectAtIndex:indexPath];
 [self.navigationController pushViewController:nextController animated:YES];
 [nextController release]; 
}

и мой nextviewcontroller.h

    #import <UIKit/UIKit.h>

@interface NextViewController : UIViewController
{
 UILabel *nameLabel;
 UIImageView *iconView;
 NSDictionary *dataItem;
}

@property (nonatomic, retain) IBOutlet UILabel *nameLabel;
@property (nonatomic, retain) IBOutlet UIImageView *iconView;
@property (nonatomic, retain) NSDictionary *dataItem;

@end

Он загружается, но я получаю следующее предупреждение:

"предупреждение: передача аргумента 1 объекта 'ObjectAtIndex:' делает целое число из указателя без приведения

Отладчик говорит

Завершение работы приложения из-за необработанного исключения «NSRangeException», причина: «*** - [NSCFArray objectAtIndex:]: индекс (64244544) за пределами (50)»

Есть идеи?

1 Ответ

0 голосов
/ 22 февраля 2010

То, что сказал Янник - «делает целое число из указателя без приведения» означает, что вы используете адрес объекта NSIndexPath (который, вероятно, больше, чем число строк в вашей таблице, представьте, что указатель указывает на 0x03030000 или около того) в качестве номера строки, а не поля строки объекта.

...