带有详细子视图的警告消息?

时间:2010-02-21 23:18:20

标签: ios iphone uitableview subview nsrangeexception

我的代码看起来是否合适?我正在尝试将数据加载到我的表视图和详细的子视图中。我的表工作正常,但数据不会在我的子视图中加载

警告显示在此行

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

它加载但我得到以下警告:

  

“警告:传递'objectAtIndex:'的参数1'从没有强制转换的指针生成整数

调试器说

  

由于未捕获的异常'NSRangeException'而终止应用程序,原因:'*** - [NSCFArray objectAtIndex:]:索引(64244544)超出边界(50)'

任何想法?

1 个答案:

答案 0 :(得分:0)

Yannick所说的 - “在没有强制转换的情况下从指针生成整数”意味着你正在使用NSIndexPath对象的地址(这可能比你表上的行数更多,想象指针指向0x03030000或其他)作为行号而不是对象的行字段。