それぞれユーザーの入力を収集する 3 つのシーンがあります。各シーンには 5 つの UITextField があります。4 番目のシーンでは、UITableView に 15 個のテキスト フィールドがすべて表示されます。
これが最善の方法かどうかはわかりませんが、シーン 1 のコードは次のとおりです。
//Meetings is NSManagedObject class. Meetings.h and .m was created from the Meetings entity from Core Data
//I have this code once in the file right before I start saving the data
Meetings *meetings = (Meetings *) [NSEntityDescription insertNewObjectForEntityForName:@"Meetings" inManagedObjectContext:self.managedObjectContext];
// I have similar code below for each user's input.
NSString *date = [[NSString alloc] initWithFormat:@"%@", [dateFormatter stringFromDate:selectedDate]];
DateLabel.text = date;
[meetings setDateLabel:date];
...
[meetings setTimeLabel:time];
..
//Code below is to save. I have this once at the end of the file to save the data
NSError *error = nil;
if (![managedObjectContext save:&error]) {
// Handle the error.
}
//The log below shows the saved data fine. Thus, the data is being saved in managnedObjectContext.
NSLog (@"This is the DateLabel %@", meetings.DateLabel);
質問: シーン 2 および 3 からポインター *meetings にアクセスして、残りのフィールドを managedObjectContext に保存するにはどうすればよいですか? シーン 2 から NSLog を実行したところ、Null として表示されます。
//In Scene 2 viewDidLoad method I did the following to check:
self.managedObjectContext = [(STAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
Meetings *meetings = (Meetings *) [NSEntityDescription insertNewObjectForEntityForName:@"Meetings" inManagedObjectContext:self.managedObjectContext];
NSLog (@"This is the DateLabel from Scene 2 %@", meetings.DateLabel);
ログには次のように表示されます。
2013-02-11 18:04:05.447 MyApp[3505:c07] This is the DateLabel from Scene 2 (null)