- (void)tableView:(UITableView *)tableView
accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = indexPath.row;
if (row == NSNotFound)
return;
if (call.uid != kABRecordInvalidID)
{
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook,
call.uid);
// CFRelease(addressBook);// commenting out this makes the program not crash
}
}
ここに問題があります。アドレス帳を解放していないため、静的コード分析でメモリ リークが発生していることがわかりました。解放しようとしましたが、解放された画面に戻ってこの関数を再度呼び出すと、アプリがクラッシュします。
のアクセサリ ボタンをクリックするとしますuitableview
。やらなければならないことをして元のウィンドウに戻り、もう一度アクセサリ ボタンをクリックするuitableview
と、プログラムが次のエラーでクラッシュします。
-[タイプ保持ではありません]: 割り当て解除されたインスタンス 0x618d810 にメッセージが送信されました