基本上,我试图通过自定义设置器将对象从主视图发送到详细视图。但是,一旦在详细视图中调用了 setter,应用程序就会立即崩溃。我不太擅长调试,但我认为这是因为对象没有进入设置器——它认为它是零。不过,这可能是错误的。
这是主视图中 segue 的代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
CCNewsItem *theNewsItem = self.listOfNewsItems[indexPath.row];
NSLog(@"Preparing to pass: %@", theNewsItem);
[[segue destinationViewController] setSelectedNewsItem:theNewsItem];
}
}
这是详细视图中的设置器:
- (void)setSelectedNewsItem:(CCNewsItem *)newItem
{
if (self.selectedNewsItem != newItem) {
self.selectedNewsItem = newItem;
// Update the view.
[self configureView];
}
}
它完全在线崩溃- (void)setSelectedNewsItem:(CCNewsItem *)newItem
。我已经非常确定被传递的对象是有效的(我将它记录下来以进行仔细检查,一切看起来都很好),但它似乎要么没有进入设置器,要么在它碰到它时以某种方式爆炸.
有任何想法吗?谢谢!
根据要求,这是日志/异常
这是我的 NSLog 在我试图传递的对象上显示的内容:
2013-11-02 14:18:23.660 Curtis Consulting[14862:60b] Preparing to pass: <CCNewsItem: 0x14e70580>
当应用程序在设置器的第一行停止时(我不知道为什么;我禁用了所有断点),它将 newItem (传递的对象)的值显示为:
newItem CCNewsItem * nil 0x00000000
NSObject NSObject
_headline NSString * nil
_body NSString * nil
_url NSURL * nil
编辑 2
因为,据我所知,没有办法复制它显示的错误(在右侧的绿色栏中,但我没有打开任何断点),这是我的转录:
Thread 1: EXC_BAD_ACCESS (code=2, address=0x27c84ff8)