我有一个应用程序,它具有一个简单的TableView,并在点击一个项目时推送到一个详细视图。但是,当使用属性将Ringtone *对象传递给详细视图时,我被EXC_BAD_ACCESS困住了。iPhone开发。 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。我在哪里犯错误?
OT:你应该在默认情况下复制(不保留)具体类型:也就是铃声:ringtoneName,desc,fileName,日期 – justin 2011-03-10 06:30:02
你需要在分配给detailViewController对象之前为Ringtone对象分配内存。 – Swapna 2011-03-10 06:44:52