を引き起こしているのメソッドを呼び出すと、私は新しいビューを提示して、いくつかのデータをロードするメソッドを呼び出します。私のスカウトレポートビューで別のビューコントローラは、私が新しいビューに移行していたループ
-(IBAction)switchToScoutingReport:(id)sender
{
InspectAppDelegate *dataCenter = (InspectAppDelegate *) [[UIApplication sharedApplication] delegate];
[self saveData];
ScoutingReportViewController *scoutingReport = [self.storyboard instantiateViewControllerWithIdentifier:@"ScoutView"];
[self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:scoutingReport animated:YES];
[scoutingReport setScoutingEventData:[dataCenter.eventsArray objectAtIndex:0]];
}
コントローラは、このメソッドを呼び出します:
-(void)setScoutingEventData:(ScoutingEventData *)scoutingEventDataInput
{
NSLog(@"setting event data");
self.scoutingEventData = scoutingEventDataInput;
[self loadDataWithEvent];
}
をし、何らかの理由で、これは私の出力です:
STある2011-12-22 10:17:20.637 Inspect[329:207] setting event data
2011-12-22 10:17:20.637 Inspect[329:207] setting event data
2011-12-22 10:17:20.638 Inspect[329:207] setting event data
2011-12-22 10:17:20.638 Inspect[329:207] setting event data
2011-12-22 10:17:20.639 Inspect[329:207] setting event data
2011-12-22 10:17:20.640 Inspect[329:207] setting event data
2011-12-22 10:17:20.640 Inspect[329:207] setting event data
2011-12-22 10:17:20.641 Inspect[329:207] setting event data
無限ループでうまくいく。
私はなぜそのループ、それを行うためのループコードがないのか分かりません。それは "セット"メソッドを使用することについて特別なものですか?私はscoutingEvenDataを作成するために@propertyと@synthesizeを使用します。今私はそれを考える、私はちょうど私の他のビューコントローラでscoutingEvenDataを設定することができます。
でも、このコードがループを作成する理由にはまだ興味があります。何か案は?
編集:私は、他のクラスからloadDataWithEventを呼び出すときsetScoutingEventDataメソッドが呼び出され、ループしている(setScoutingEventDataが直接のいずれかのコントローラに呼び出されることはありません)....:/
haha、意味があります。以前はセッターメソッドを実際に使ったことはありませんでしたが、このロジックプロセスはちょうど私がやろうとしていたことに対して意味をなさぎました。最初のコントローラにself.scoutingEvenDataを直接設定し、loadDataWithEventを直接呼び出すように変更しました。説明ありがとう。 – Padin215