开发者

Warning message with detailed subviews?

开发者 https://www.devze.com 2022-12-21 06:51 出处:网络
Does my code look right? I\'m trying to load data into my table view and detailed sub view. My table works fine, but the data wont load in my sub view

Does my code look right? I'm trying to load data into my table view and detailed sub view. My table works fine, but the data wont load in my sub view

The 开发者_C百科warning appears under this line

nextController.dataItem = [data objectAtIndex:indexPath];

Here is my 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]; 
}

and my 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

It loads but I get the following warning:

"warning: passing argument 1 of 'objectAtIndex:' makes integer from pointer without a cast

The debugger says

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (64244544) beyond bounds (50)'

Any Ideas?


What Yannick said -- the "makes integer from pointer without a cast" means that you're using the address of the NSIndexPath object (which is probablly way more than the number of rows on your table, imagine the pointer points to 0x03030000 or something) as the row number and not the row field of the object.

0

精彩评论

暂无评论...
验证码 换一张
取 消