Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone开发。EXC_在视图之间传递数据时访问错误_Iphone_Exc Bad Access - Fatal编程技术网

iPhone开发。EXC_在视图之间传递数据时访问错误

iPhone开发。EXC_在视图之间传递数据时访问错误,iphone,exc-bad-access,Iphone,Exc Bad Access,我有一个应用程序,它有一个简单的TableView,当点击一个项目时,它会推送到一个详细的视图。但是,当使用属性将Ringtone*对象传递到详细视图时,我被EXC_BAD_访问权限困住了 以下是存储数据的ringtone类的定义: @interface Ringtone : NSObject { NSString *ringtoneName; NSString *desc; NSString *fileName; NSDate *date; in

我有一个应用程序,它有一个简单的TableView,当点击一个项目时,它会推送到一个详细的视图。但是,当使用属性将Ringtone*对象传递到详细视图时,我被EXC_BAD_访问权限困住了

以下是存储数据的ringtone类的定义:

@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_错误访问。我在哪里出错了?

请检查
铃声的
对象
是否已
正确分配

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

OT:默认情况下,您应该复制(而不是保留)具体类型:即Ringtone:ringtoneName,desc,fileName,日期在分配给detailViewController对象之前,您需要将内存分配给Ringtone对象。我应该在detailView中将Ringtone对象的分配代码放在哪里?不,您必须在分配任何值之前分配它。