iPhone开发。在视图之间传递数据时EXC_BAD_ACCESS

时间:2011-03-10 06:15:59

标签: iphone exc-bad-access

我有一个具有简单TableView的应用程序,并在单击项目时推送到详细视图。但是当使用属性将Ringtone *对象传递给详细视图时,我被困在EXC_BAD_ACCESS中。

以下是铃声类的定义,它存储数据:

@interface Ringtone : NSObject {
    NSString *ringtoneName;

    NSString *desc;

    NSString *fileName;

    NSDate *date;

    int cId;

    int rId;

    int downloads;

    int fileSize;
}

@property (nonatomic, retain) NSString *ringtoneName;

@property (nonatomic, retain) NSString *desc;

@property (nonatomic, retain) NSString *fileName;

@property (nonatomic, retain) NSDate *date;

@property (nonatomic, assign) int cId;

@property (nonatomic, assign) int rId;

@property (nonatomic, assign) int downloads;

@property (nonatomic, assign) int fileSize;

@end

这是DetailedViewController中的属性定义:

@interface RingtoneDetailViewController : UITableViewController {
    Ringtone *R;
}

@property (nonatomic, retain) Ringtone *R;

@end

然后在项目选择事件中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    RingtoneDetailViewController *detailViewController = [[RingtoneDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];

    Ringtone *r = [ringtoneList objectAtIndex:[indexPath row]];
    detailViewController.R = r; //EXC_BAD_ACCESS This line

    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];

}

分配R属性时发生EXC_BAD_ACCESS。我在哪里犯错?

2 个答案:

答案 0 :(得分:0)

请检查object的{​​{1}}是否Ringtone正确。

答案 1 :(得分:0)

您必须在实现类中合成该属性。 因为如果你要创建一个属性,并且如果你想在其他类中使用该属性,那么你必须合成该属性。