私のプログラムでは、宛先ビュー コントローラーにデータを入力できるように手動でセットアップする必要があることがよくあります。これは問題なく動作しますが、ソース コントローラーと宛先コントローラーの間を行ったり来たりしながらプロファイラーを見ていると、割り当てが急増しています。ARCを使用しています。その目的地での設定方法にも問題がある可能性があることはわかっていますが、ソースコントローラーに戻るときに、設定した目的地コントローラーを削除する必要はないのではないかと考えていました。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//Pull which topic the user clicked on from the table view
NSIndexPath *myIndexPath = [self.myTableView2
indexPathForSelectedRow];
NSArray * topicArray = [[myTopicLoader arrayOfFinishedCategories] objectAtIndex:myIndexPath.section];
//Create a temporary NSObject Topic to send to the detail view controller
//Set it to the Topic in the array based on which row the user clicked on
//(The tableview was populated with the same array)
topic *tempTopic = [topicArray objectAtIndex:myIndexPath.row];
//If they clicked on one that has details to show and is purchased, load the detail view controller
if ([segue.identifier isEqualToString:@"showTopicDetails"]) {
//Set up a destination view controller
topicDetailController *topicDetailController = [segue destinationViewController];
//Set its topic to the temporary one we set up here
topicDetailController.currentTopic = tempTopic;
}else {
//If they clicked on one that does not have details because it is not yet purchased, load
//the purchase view controller instead
purchaseDetailController *purchaseDetailController = [segue destinationViewController];
//And set its topic to the temporary one we set up here.
purchaseDetailController.currentTopic = tempTopic;
}
}
私の過剰な割り当てのほとんどは次のいずれかです。
29717 0xaa8a600 __NSArrayM 00:28.703.069 • 32 UIKit _UITapRecognizerCommonInit
また
1069 0x15d5e650 Malloc 32 バイト 00:29.254.799 • 32 libsystem_sim_blocks.dylib _Block_copy_internal
これは、私が使用しているビルド済みのもの (ブック コントローラーと Google の XML パーサー) からのものである可能性があります。しかし、おそらく宛先コントローラーを取り除けないことがそれと関係があるかどうかを確認したかったのです。