So fange ich Core Data für iOS zu lernen und haben diesen Abschnitt des Codes aus schrieb:Delegierter Immobilien zu UIApplication
- (void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
id delegate = [UIApplication sharedApplication].delegate;
NSManagedObjectContext *objectContext = [delegate managedObjectContext];
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Album"];
//An array of our sorted Album objects by date in ascending order
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]];
NSError *error = nil;
NSArray *fetchedAlbums = [objectContext executeFetchRequest:fetchRequest error:&error];
self.albums = [fetchedAlbums mutableCopy];
[self.tableView reloadData];
}
Meine Frage ist, was ist der Zweck dieser Linie ist:
id delegate = [UIApplication sharedApplication].delegate;
Ich weiß in der Tat, dass Sie für einen Delegaten die aktuelle Instanz eines bestimmten Objekts an die Eigenschaft delegate übergeben müssen, die dieses Objekt als Delegat für das andere Objekt einstellt. Meine Frage ist, wenn Sie das tun:
id delegate = [UIApplication sharedApplication].delegate;
das Objekt in zu dieser delegate
Eigenschaft übergeben werden? Die Methode gibt eine Singleton-Instanz der von mir angenommenen App zurück und Sie erhalten dann die delegate
-Eigenschaft für diese einzelne Instanz der App. Bezieht sich dieser Delegat auf denselben, der in den AppDelegate.h
/AppDelegate.m
Dateien verwendet wird?
Und wenn das Delegat Eigenschaft ist das gleiche, die in der viewDidLoad
Methode in der AppDelegate.m
Datei eine Zeile Code in AppDelegate.h
/AppDelegate.m
Dateien verwendet wird, wo wir in der aktuellen Instanz der AppDelegate.m
passieren werden nicht dort sollte in der Delegat Eigenschaft, zu ähnlich, was wir tun für ein tableView
:
self.tableView.delegate = self.
ich sehe nicht, wo die für die delegate
Eigenschaft in dieser Zeile durchgeführt wird:
id delegate = [UIApplication sharedApplication].delegate;
Sie erhalten den Delegaten, nicht einstellen. – rmaddy
Oh ok, aber welches Objekt oder welche Instanz wird in die delegierte Eigenschaft übernommen, die wir bekommen? Ist es die aktuelle Instanz der AppDelegate.m-Datei? –