基本的に、カスタム セッターを使用してマスター ビューから詳細ビューにオブジェクトを送信しようとしています。ただし、セッターが詳細ビューで呼び出されるとすぐに、アプリはすぐにクラッシュします。私はデバッグが得意ではありませんが、オブジェクトがセッターに到達していないためだと思います.nilと見なされています。しかし、それについては間違っている可能性があります。
マスター ビューのセグエのコードは次のとおりです。
- (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)