我有一个具有简单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。我在哪里犯错?
答案 0 :(得分:0)
请检查object
的{{1}}是否Ringtone
正确。
答案 1 :(得分:0)
您必须在实现类中合成该属性。 因为如果你要创建一个属性,并且如果你想在其他类中使用该属性,那么你必须合成该属性。