Сначала вы получаете доступ к классу UIApplication
.
Это одноэлементный. Существует только один экземпляр, который создается при запуске приложения с помощью рамки какао.
Затем вы получаете доступ к своему единственному экземпляру, вызывая метод класса sharedApplication
. «shared (classname)» - это общее имя для метода, возвращающего экземпляр одноэлементного. Другим распространенным именем является «sharedInstance».
Затем вы получаете доступ к своему delegate
. Это следует за обычной схемой делегирования, которую вы часто видите в разработке приложений iOS с использованием какао-touch. Но это особый делегат, который у вас есть. Это класс AppDelegate
. Когда вы позволяете Xcode создавать новый проект приложения с использованием основных данных, он создает некоторые стандартные методы в вашем классе AppDelegate
для вашего удобства.
Один из них (вычисленный) геттер для managedObjectContext
.
Однако UIApplication
знает своего делегата только как о любом объекте, который реализует протокол UIApplicationDelegate
. Дополнительные методы для основных данных не известны до UIApplication
.
Вот почему вы должны отображать вывод .sharedApplication()
на свой сайт с именем AppDelegate
. as
- оператор литья в Свифте.
После того, как оно было выполнено, вы можете получить доступ к получателю managedObjectContext
.
Все.
Я также ищу ответ на этот вопрос. Это действительно хороший ответ. Я почти поняла. Но я путаюсь здесь ». Однако UIApplication знает своего делегата только как любой объект, который реализует протокол UIApplicationDelegate. Дополнительные методы для основных данных не известны UIApplication». Можете ли вы объяснить этот момент более подробно. Благодарю. – Alamin
@bir, делегат объявлен как нечто вроде 'id delegate;' И это то, что вы получаете от 'UIApplication.sharedApplication()'. Поэтому вам нужно передать возвращаемое значение классу вашей реализации 'UIApplicationDelegate', который, по-видимому, является' AppDelegate'. –