UIApplicationDelegate
Наследование
Не применимый
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 2.0 и позже.
UIApplicationDelegate
протокол определяет методы, которые вызывает одиночный элемент UIApplication
объект в ответ на важные события во времени жизни Вашего приложения. Делегат приложения работает рядом с объектом приложения гарантировать, что Ваше приложение взаимодействует должным образом с системой и с другими приложениями. В частности методы делегата приложения дают Вам шанс реагировать на важные изменения. Например, Вы используете методы делегата приложения для ответа на изменения состояния, такой как тогда, когда приложение перемещается от переднего плана до фонового выполнения, и реагировать на входящие уведомления. Во многих случаях методы делегата приложения являются единственным способом получить эти важные уведомления.
XCode предоставляет делегату приложения класс для каждого нового проекта, таким образом, Вы не должны определять тот сами первоначально. Когда Ваше приложение запускается, UIKit автоматически создает экземпляр делегата приложения класс, предоставленный XCode, и использует его для выполнения первых битов пользовательского кода в приложении. Все, что необходимо сделать, посещают урок, который обеспечивает XCode, и добавьте пользовательский код.
Делегат приложения является эффективно корневым объектом Вашего приложения. Как UIApplication
сам объект, делегат приложения является одноэлементным объектом и всегда присутствует во время выполнения. Несмотря на то, что UIApplication
объект выполняет большую часть базовой работы для управления приложением, Вы решаете полное поведение своего приложения путем обеспечения надлежащих реализаций методов делегата приложения. Несмотря на то, что большинство методов этого протокола является дополнительным, необходимо реализовать больше всего или все они.
Делегат приложения выполняет несколько важных ролей:
Это содержит код запуска Вашего приложения.
Это реагирует на ключевые изменения в состоянии Вашего приложения. В частности это реагирует и на временные прерывания и к изменениям в режиме выполнения Вашего приложения, такой как тогда, когда Ваши переходы приложения от переднего плана до фона.
Это реагирует на уведомления, происходящие извне приложения, такие как удаленные уведомления (также известный как уведомления нажатия), предупреждения низкой памяти, уведомления завершения загрузки и т.д.
Это определяет, должны ли сохранение состояния и восстановление произойти и помогают в процессе сохранения и восстановления по мере необходимости.
Это реагирует на события, которые предназначаются для самого приложения и не являются определенными для представлений Вашего приложения или просматривают контроллеры.
Можно использовать его для хранения центральных объектов данных приложения или любого содержания, не имеющего контроллера представления владения.
Для получения дополнительной информации о роли делегата приложения и как это вписывается в архитектуру приложения, см. Руководство по программированию Приложения для iOS. Для получения дополнительной информации о UIApplication
singleton-класс, см. Ссылку класса UIApplication.
Запуск Вашего приложения
Время запуска является важным моментом в жизненном цикле приложения. Во время запуска делегат приложения ответственен за выполнение любого пользовательского кода, требуемого инициализировать Ваше приложение. Например, делегат приложения обычно создает структуры исходных данных приложения, регистрируется для любых требуемых служб и настраивает интерфейс исходного пользователя приложения на основе любых доступных данных.
Некоторые дополнительные задачи, которые делегат приложения выполняет во время запуска, включают следующее:
Смотрите на словарь опций запуска для определения, почему было запущено приложение.
application:willFinishLaunchingWithOptions:
иapplication:didFinishLaunchingWithOptions:
методы предоставляют словарю ключи, указывающие причину, что было запущено Ваше приложение.Определите, должно ли продолжиться восстановление состояния. Если приложение ранее сохранило состояние своих контроллеров представления, восстановление тех контроллеров представления к их предыдущему состоянию продолжается только если делегат приложения
application:shouldRestoreApplicationState:
возвраты методаYES
true
.Регистр для любых удаленных уведомлений Ваши поддержки приложений. Для получения удаленных уведомлений (также известный как уведомления нажатия), приложение должно зарегистрироваться в удаленной службе уведомления путем вызова
registerForRemoteNotificationTypes:
методUIApplication
объект. Обычно, Вы выполняете эту задачу во время запуска.Откройте URL, отправленный в Ваше приложение. Если существует URL для открытия, системные вызовы
application:openURL:sourceApplication:annotation:
метод Вашего делегата приложения. Также можно сказать, существует ли URL для открытия путем взгляда в словаре опций запуска дляUIApplicationLaunchOptionsURLKey
ключ. Необходимо объявить типы URLs поддержки приложений путем добавленияCFBundleURLTypes
ключ к Вашему приложениюInfo.plist
файл. Для получения дополнительной информации о регистрации и обработке URLs, см. Руководство по программированию Приложения для iOS.Обеспечьте корневой объект окна для своего приложения. Технически, делегат приложения, предоставленный XCode уже, реализует
window
свойство, таким образом, Вы не должны делать ничего специального здесь, если Вы не хотите настроить окно своего приложения.
Словарь опций передал application:willFinishLaunchingWithOptions:
и application:didFinishLaunchingWithOptions:
методы являются важным источником разовой запуском информации для Вашего приложения. Ключи в том словаре говорят Вам причину, Ваше приложение было запущено, и дайте Вам шанс скорректировать Ваши процедуры запуска соответственно. Например, если бы Ваше приложение было запущено из-за входящего удаленного уведомления, то Вы могли бы хотеть реконфигурировать свой пользовательский интерфейс для отображения данных, связанных с тем уведомлением. Для списка возможных причин, почему Ваше приложение могло бы быть запущено, посмотрите Ключи Опций Запуска.
Управление изменениями состояния
Одно из основных заданий делегата приложения должно реагировать на изменения состояния, о которых сообщает система. Для каждого изменения состояния, происходящего, системные вызовы надлежащие методы делегата приложения. Каждое состояние имеет различные правила, управляющие, как приложение должно, как ожидать, будет вести себя, и методы делегата приложения должны скорректировать поведение приложения соответственно. Таблица 1 перечисляет возможные состояния приложения и высокоуровневых ожиданий. Рисунок 1 показывает, как приложение перемещается от одного состояния до другого.
Состояние |
Описание |
---|---|
Не выполнение |
Приложение не было запущено или было завершено, или пользователем или системой. |
Неактивный |
Приложение работает на переднем плане, но не получает события. (Это может выполнять другой код все же.) Приложение обычно остается в этом состоянии только кратко, поскольку это переходит к различному состоянию. После ввода этого состояния приложение должно поместить себя в состояние покоя с ожиданием перемещения в фоновое или активное состояние вскоре. |
Активный |
Приложение работает на переднем плане и получает события. Это - нормальный режим для приоритетных приложений. Приложение в активном состоянии не имеет никаких специальных ограничений, установленных для него. Это - приоритетное приложение и должно быть быстро реагирующим пользователю. |
Фон |
Приложение выполняет код, но не видимо на экране. Когда пользователь выходит из приложения, система перемещает приложение в фоновое состояние кратко прежде, чем приостановить его. В других случаях система может запустить приложение в фон (или разбудить приостановленное приложение), и дайте ему время для обработки определенных задач. Например, система может разбудить приложение так, чтобы она могла обработать фоновые загрузки, определенные типы событий расположения, удаленных уведомлений и других типов событий. Приложение в фоновом режиме утверждает, должен выполнить как можно меньше работы. Приложения, запрашивающие время обработать определенные типы событий, должны обработать те события и управление возвратом назад к системе как можно быстрее. |
Приостановленный |
Приложение находится в памяти, но не выполняет код. Система приостанавливает приложения, которые являются в фоновом режиме и не имеют никаких незаконченных задач завершиться. Система может произвести чистку приостановленных приложений в любое время, не будя их для создания места для других приложений. |
Когда изменения состояния происходят, следующие методы вызывают. Для получения информации о чем сделать в ответ на каждый переход, см. описания метода:
Время запуска:
Переход к переднему плану —
Переход к фону:
Переход к неактивному состоянию
applicationWillResignActive:
(Вызванный при отъезде приоритетного состояния.)applicationWillEnterForeground:
(Вызванный при переходе из фонового состояния.)
Завершение:
applicationWillTerminate:
(Вызванный только, когда работает приложение. Если приложение приостановлено, этот метод не вызывают.)
Определенные задачи, которые Вы выполняете во время данного изменения состояния, зависят от Вашего приложения и его возможностей. Для подсказок и руководства о том, что сделать во время изменений состояния, см. Руководство по программированию Приложения для iOS.
Ответ на уведомления и события
Система отправляет много различных уведомлений, и события делегату приложения, позволяя приложению делегировать решают, как лучше всего реагировать на входящую информацию и обновить приложение. Большинство этих уведомлений соответствует способам поведения уровня приложения, которые могли бы потребовать, чтобы Вы обновили данные или пользовательский интерфейс своего приложения или реагировали на измененное условие системы. Путем Вы обрабатываете эти уведомления, зависит от архитектуры Вашего приложения. Во многих случаях делегат приложения не мог бы сделать чего-то большего чем уведомить другие объекты (такие как контроллеры представления Вашего приложения), что они должны обновить себя, но в некоторых случаях делегат приложения мог бы выполнить саму работу.
Когда удаленное уведомление поступает, системные вызовы
application:didReceiveRemoteNotification:fetchCompletionHandler:
метод. Уведомления обычно сигнализируют доступность новой информации. В Вашем методе делегата приложения Вы могли бы начать загружать новые данные с сервера так, чтобы можно было обновить структуры данных приложения. Вы могли бы также использовать уведомление для обновления пользовательского интерфейса.Когда локальное уведомление стреляет, системные вызовы
application:didReceiveLocalNotification:
метод. Приложение должно работать (или недавно запущенное) для получения этого события.Когда пользователь касается пользовательского действия на предупреждении для удаленного или локального уведомления, системные вызовы
application:handleActionWithIdentifier:forRemoteNotification:completionHandler:
илиapplication:handleActionWithIdentifier:forLocalNotification:completionHandler:
метод в фоновом режиме так, чтобы Ваше приложение могло выполнить связанное действие.Для приложений, хотящих инициировать фоновые загрузки, системные вызовы
application:performFetchWithCompletionHandler:
метод, когда настало время для Вас для запуска тех загрузок.Для приложений, использующих
NSURLSession
класс для выполнения фоновых загрузок, системные вызовыapplication:handleEventsForBackgroundURLSession:completionHandler:
метод, когда те загрузки закончились, в то время как не работало приложение. Можно использовать этот метод, чтобы обработать загруженные файлы и обновить затронутые контроллеры представления.Когда условие низкой памяти происходит, система уведомляет делегата приложения путем вызова
applicationDidReceiveMemoryWarning:
метод. Приложение уведомляет свои контроллеры представления отдельно, таким образом, делегат приложения должен использовать это уведомление для удаления ссылок на объекты и данные, которыми не управляет непосредственно контроллер представления.Когда существенное изменение своевременно происходит, система уведомляет делегата приложения путем вызова
applicationSignificantTimeChange:
метод. Если Ваше приложение чувствительно к изменениям своевременно, можно использовать этот метод для обновления данных и пользовательского интерфейса приложения.Когда пользователь блокирует устройство, системные вызовы делегат приложения
applicationProtectedDataWillBecomeUnavailable:
метод. В то время как устройство заблокировано, защита данных предотвращает несанкционированный доступ к файлам. Если Ваше приложение ссылается на защищенный файл, необходимо удалить ту ссылку на файл и выпустить любые объекты, связанные с файлом, когда вызывают этот метод. Когда пользователь впоследствии разблокировал устройство, можно восстановить ссылки на данные в делегате приложенияapplicationProtectedDataDidBecomeAvailable:
метод.
-
Говорит делегату, что процесс запуска начался, но что еще не произошло восстановление состояния.
Объявление
Swift
optional func application(_
application
: UIApplication, willFinishLaunchingWithOptionslaunchOptions
: [NSObject : AnyObject]?) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Параметры
application
Одноэлементный объект приложения.
launchOptions
Словарь, указывающий причину приложение, был запущен (если таковые имеются). Содержание этого словаря может быть пустым в ситуациях, где пользователь запустил приложение непосредственно. Для получения информации о возможных ключах в этом словаре и как обработать их, посмотрите Ключи Опций Запуска.
Возвращаемое значение
NO
false
если приложение не может обработать ресурс URL или продолжать пользовательское действие, иначе возвратитесьYES
true
. Если приложение запускается в результате удаленного уведомления, возвращаемое значение проигнорировано.Обсуждение
Используйте этот метод (и соответствие
application:didFinishLaunchingWithOptions:
метод), чтобы инициализировать Ваше приложение и подготовить его для выполнения. Этот метод вызывают после того, как Ваше приложение было запущено и его основная раскадровка, или файл пера был загружен, но прежде чем было восстановлено состояние Вашего приложения. В то время, когда этот метод вызывают, Ваше приложение находится в неактивном состоянии.Если Ваше приложение было запущено системой по определенной причине,
launchOptions
словарь содержит данные, указывающие причину запуска. По некоторым причинам запуска система может вызвать дополнительные методы Вашего делегата приложения. Например, если Ваше приложение было запущено для открытия URL, системные вызовыapplication:openURL:sourceApplication:annotation:
метод после Вашего приложения заканчивает инициализировать себя. Присутствие ключей запуска дает Вам возможность запланировать то поведение. В случае URL для открытия Вы могли бы хотеть предотвратить восстановление состояния, если URL представляет документ, который пользователь хотел открыть.Когда спросили открыть URL, результат возврата этого метода объединен с возвратом, следуют
application:didFinishLaunchingWithOptions:
метод, чтобы определить, должен ли быть обработан URL. Если возвращается любой методNO
false
, система не вызываетapplication:openURL:sourceApplication:annotation:
метод. Если Вы не реализуете один из методов, только возвращаемое значение реализованного метода рассматривают.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Говорит делегату, что процесс запуска почти сделан, и приложение почти готово работать.
Объявление
Swift
optional func application(_
application
: UIApplication, didFinishLaunchingWithOptionslaunchOptions
: [NSObject : AnyObject]?) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Параметры
application
Одноэлементный объект приложения.
launchOptions
Словарь, указывающий причину приложение, был запущен (если таковые имеются). Содержание этого словаря может быть пустым в ситуациях, где пользователь запустил приложение непосредственно. Для получения информации о возможных ключах в этом словаре и как обработать их, посмотрите Ключи Опций Запуска.
Возвращаемое значение
NO
false
если приложение не может обработать ресурс URL или продолжать пользовательское действие, иначе возвратитесьYES
true
. Если приложение запускается в результате удаленного уведомления, возвращаемое значение проигнорировано.Обсуждение
Используйте этот метод (и соответствие
application:willFinishLaunchingWithOptions:
метод), чтобы завершить инициализацию Вашего приложения и сделать любые заключительные тонкие настройки. Этот метод вызывают после того, как восстановление состояния произошло, но прежде чем были представлены окно Вашего приложения и другой UI. В некоторый момент после этого метода возвраты, системные вызовы другой из Ваших методов делегата приложения для перемещения приложения в активное (приоритетное) состояние или фоновое состояние.Этот метод представляет Ваш последний шанс обработать любые ключи
launchOptions
словарь. Если Вы не оценивали ключи в Вашемapplication:willFinishLaunchingWithOptions:
метод, необходимо смотреть на них в этом методе и обеспечить надлежащий ответ.Объекты, которые не являются делегатом приложения, могут получить доступ к тому же
launchOptions
словарь оценивает путем наблюдения названного уведомленияUIApplicationDidFinishLaunchingNotification
и доступ к уведомлениюuserInfo
словарь. То уведомление отправляется вскоре после этого метода возвраты.Результат возврата этого метода объединен с возвратом, следуют
application:willFinishLaunchingWithOptions:
метод, чтобы определить, должен ли быть обработан URL. Если возвращается любой методNO
false
, URL не обрабатывается. Если Вы не реализуете один из методов, только возвращаемое значение реализованного метода рассматривают.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Говорит делегату, что приложение стало активным.
Объявление
Swift
optional func applicationDidBecomeActive(_
application
: UIApplication)Objective C
- (void)applicationDidBecomeActive:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Этот метод вызывают, чтобы позволить Вашему приложению знать, что это переместилось от неактивного до активного состояния. Это может произойти, потому что Ваше приложение было запущено пользователем или системой. Приложения могут также возвратиться к активному состоянию, если пользователь принимает решение проигнорировать прерывание (такое как входящий телефонный вызов или SMS-сообщение), который отправил приложение временно в неактивное состояние.
Необходимо использовать этот метод для перезапуска любых задач, приостановленных (или еще не запустился), в то время как приложение было неактивно. Например, Вы могли использовать его, чтобы перезапустить таймеры или отрегулировать OpenGL частоты кадров ES. Если бы Ваше приложение было ранее в фоновом режиме, то Вы могли бы также использовать его для обновления пользовательского интерфейса приложения.
После вызова этого метода приложение также отправляет a
UIApplicationDidBecomeActiveNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на переход.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Говорит делегату, что приложение собирается стать неактивным.
Объявление
Swift
optional func applicationWillResignActive(_
application
: UIApplication)Objective C
- (void)applicationWillResignActive:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Этот метод вызывают, чтобы позволить Вашему приложению знать, что это собирается переместиться от активного до неактивного состояния. Это может произойти для определенных типов временных прерываний (таких как входящий телефонный вызов или SMS-сообщение) или когда пользователь выходит из приложения, и это начинает переход к фоновому состоянию. Приложение в неактивном состоянии продолжает работать, но не диспетчеризирует входящие события респондентам.
Необходимо использовать этот метод, чтобы приостановить продолжающиеся задачи, отключить таймеры и снизить скорость OpenGL частоты кадров ES. Игры должны использовать этот метод для приостановки игры. Приложение в неактивном состоянии должно выполнить минимальную работу, в то время как это ожидает для перехода или к активному или к фоновому состоянию.
Если Ваше приложение не сохранило пользовательские данные, можно сохранить его здесь, чтобы гарантировать, что это не потеряно. Однако рекомендуется сохранить пользовательские данные в надлежащих точках в течение выполнения приложения, обычно в ответ на определенные действия. Например, сохраните данные, когда пользователь отклонит экран ввода данных. Не полагайтесь на определенные изменения состояния приложения для сохранения всех критических данных приложения.
После вызова этого метода приложение также отправляет a
UIApplicationWillResignActiveNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на переход.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Говорит делегату, что приложение теперь в фоновом режиме.
Объявление
Swift
optional func applicationDidEnterBackground(_
application
: UIApplication)Objective C
- (void)applicationDidEnterBackground:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Используйте этот метод, чтобы высвободить совместно используемые средства, лишить законной силы таймеры и хранить достаточно информации состояния приложения для восстановления приложения к его текущему состоянию в случае, если это завершается позже. Необходимо также отключить обновления к пользовательскому интерфейсу приложения и избегать использования некоторых типов совместно используемых системных ресурсов (таких как база данных контактов пользователя). Также обязательно, чтобы Вы избегали использования OpenGL ES в фоновом режиме.
Ваша реализация этого метода имеет приблизительно пять секунд для выполнения любых задач и возврата. При необходимости в дополнительном времени для выполнения каких-либо заключительных задач, можно запросить дополнительное время выполнения от системы путем вызова
beginBackgroundTaskWithExpirationHandler:
. На практике необходимо возвратиться изapplicationDidEnterBackground:
как можно быстрее. Если метод не возвращается, прежде чем время заканчивается, Ваше приложение завершено и очищено из памяти.Необходимо выполнить любые задачи, касающиеся корректировки пользовательского интерфейса перед этим методом выходы, но другие задачи (такие как сохранение состояния) должны быть перемещены к параллельной очереди отгрузки или вторичному потоку по мере необходимости. Поскольку это вероятно любые фоновые задачи, Вы запускаете в
applicationDidEnterBackground:
не будет работать до окончания того метода выходы необходимо запросить дополнительное фоновое время выполнения прежде, чем запустить те задачи. Другими словами, сначала вызовитеbeginBackgroundTaskWithExpirationHandler:
и затем выполненный задача на очереди отгрузки или вторичном потоке.Приложение также отправляет a
UIApplicationDidEnterBackgroundNotification
уведомление около того же времени это вызывает этот метод, чтобы дать заинтересованным объектам шанс реагировать на переход.Для получения дополнительной информации о том, как перейти корректно к фону, и для получения информации о том, как запустить фоновые задачи, см. Руководство по программированию Приложения для iOS.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 4.0 и позже.
-
Говорит делегату, что приложение собирается ввести передний план.
Объявление
Swift
optional func applicationWillEnterForeground(_
application
: UIApplication)Objective C
- (void)applicationWillEnterForeground:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
В iOS 4.0 и позже, этот метод вызывают как часть перехода от фона до активного состояния. Можно использовать этот метод для отмены многих изменений, которые Вы внесли в свое приложение после ввода фона. Вызов к этому методу неизменно сопровождается вызовом к
applicationDidBecomeActive:
метод, тогда перемещающий приложение от неактивного до активного состояния.Приложение также отправляет a
UIApplicationWillEnterForegroundNotification
уведомление прежде, чем вызвать этот метод, чтобы дать заинтересованным объектам шанс реагировать на переход.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 4.0 и позже.
-
Когда приложение собирается завершиться, говорит делегату.
Объявление
Swift
optional func applicationWillTerminate(_
application
: UIApplication)Objective C
- (void)applicationWillTerminate:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Этот метод позволяет Вашему приложению знать, что это собирается быть завершенным и очищенным из памяти полностью. Необходимо использовать этот метод для выполнения любых заключительных задач очистки для приложения, таких как освобождение совместно используемых ресурсов, сохранение пользовательских данных и лишение законной силы таймеров. Ваша реализация этого метода имеет приблизительно пять секунд для выполнения любых задач и возврата. Если метод не возвращается, прежде чем время истекает, система может уничтожить процесс в целом.
Для приложений, не поддерживающих фоновое выполнение или соединяющихся против iOS 3.x или ранее, всегда вызывают этот метод, когда пользователь выходит из приложения. Для приложений, поддерживающих фоновое выполнение, обычно не вызывают этот метод, когда пользователь выходит из приложения, потому что приложение просто перемещается в фон в этом случае. Однако этот метод можно вызвать в ситуациях, куда приложение работает в фоновом режиме (не приостановленный), и система должна завершить его по некоторым причинам.
После вызова этого метода приложение также отправляет a
UIApplicationWillTerminateNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на переход.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
window
СвойствоОкно для использования при представлении раскадровки.
Объявление
Swift
optional var window: UIWindow? { get set }
Objective C
@property(nonatomic, retain) UIWindow *window
Обсуждение
Это свойство содержит окно, используемое для представления визуального содержания приложения на основном экране устройства.
Реализация этого свойства требуется если Ваше приложение
Info.plist
файл содержитUIMainStoryboardFile
ключ. К счастью, шаблоны проекта XCode обычно включают синтезируемое объявление свойства автоматически для делегата приложения. Значение по умолчанию этого синтезируемого свойстваnil
, который заставляет приложение создавать обобщениеUIWindow
возразите и присвойте его свойству. Если Вы хотите обеспечить пользовательское окно для своего приложения, необходимо реализовать метод получателя этого свойства и использовать его, чтобы создать и возвратить пользовательское окно.Для получения дополнительной информации о ключе UIMainStoryboardFile, посмотрите информационную Ключевую Ссылку Списка свойств.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
Говорит приложению, что оно может начать работу выборки, если оно имеет данные для загрузки.
Объявление
Swift
optional func application(_
application
: UIApplication, performFetchWithCompletionHandlercompletionHandler
: (UIBackgroundFetchResult) -> Void)Objective C
- (void)application:(UIApplication *)
application
performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
Параметры
application
Одноэлементный объект приложения.
completionHandler
Блок для выполнения, когда работа загрузки завершена. При вызове этого блока передайте в значении результата выборки, лучше всего описывающем результаты работы загрузки. Вы должны вызвать этот обработчик и должны сделать так как можно скорее. Для списка возможных значений посмотрите
UIBackgroundFetchResult
ввести.Обсуждение
Реализуйте этот метод если Ваши поддержки приложений
fetch
фоновый режим. Когда возможность возникает для загрузки данных, системные вызовы этот метод, чтобы дать приложению шанс загрузить любые данные, этому нужно. Ваша реализация этого метода должна загрузить данные, подготовить те данные к использованию и призвать блокcompletionHandler
параметр.Когда этот метод вызывают, Ваше приложение имеет до 30 секунд тактового стеной времени, чтобы выполнить работу загрузки и вызвать указанный блок обработчика завершения. На практике Ваше приложение должно вызвать блок обработчика завершения как можно скорее после загрузки необходимых данных. Если Вы не вызываете обработчик завершения своевременно, Ваше приложение завершается. Что еще более важно система использует прошедшее время для вычисления использования питания и затрат данных для фоновых загрузок приложения. Если Ваше приложение занимает много времени для вызова обработчика завершения, ему можно дать меньше будущих возможностей выбрать данные в будущем. Для получения дополнительной информации о поддержке фоновых операций выборки, посмотрите состояния Приложения и Многозадачность в Руководстве по программированию Приложения для iOS.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
приложение (_: handleEventsForBackgroundURLSession:completionHandler:) - application:handleEventsForBackgroundURLSession:completionHandler:
Говорит делегату, что события, связанные с сеансом URL, ожидают, чтобы быть обработанными.
Объявление
Swift
optional func application(_
application
: UIApplication, handleEventsForBackgroundURLSessionidentifier
: String, completionHandlercompletionHandler
: () -> Void)Objective C
- (void)application:(UIApplication *)
application
handleEventsForBackgroundURLSession:(NSString *)identifier
completionHandler:(void (^)(void))completionHandler
Параметры
application
Одноэлементный объект приложения.
identifier
Идентификатор внимания требования сеанса URL. Если Ваше приложение было просто запущено, можно использовать этот идентификатор для создания нового
NSURLSession
объект, который может получить события.completionHandler
Обработчик завершения для вызова, когда Вы заканчиваете обрабатывать события. Вызов этого обработчика завершения позволяет системе знать, что пользовательский интерфейс Вашего приложения обновляется, и может быть взят новый снимок.
Обсуждение
Когда все фоновые передачи связались с, приложение вызывает этот метод
NSURLSession
объект сделан, закончили ли они успешно или привели к ошибке. Если аутентификация требуется для одной или более передач, приложение также вызывает этот метод.Используйте этот метод, чтобы повторно соединить любые сеансы URL и обновить пользовательский интерфейс Вашего приложения. Например, Вы могли бы использовать этот метод, чтобы обновить индикаторы хода выполнения или включить новое содержание в Ваши представления. После обработки событий выполните блок в
completionHandler
параметр так, чтобы приложение могло взять новый снимок Вашего пользовательского интерфейса.Если сеанс URL заканчивает свою работу, когда Ваше приложение не работает, система запускает Ваше приложение в фоновом режиме так, чтобы это могло обработать событие. В той ситуации используйте предоставленное
identifier
создать новоеNSURLSessionConfiguration
иNSURLSession
объект. Необходимо сконфигурировать другие опции ВашегоNSURLSessionConfiguration
возразите таким же образом, что Вы сделали при запуске загрузок или загрузок. После создания и конфигурирования новогоNSURLSession
объект, что вызовы объектов надлежащие методы делегата обработать события.Если Ваше приложение уже имеет объект сеанса с указанным
identifier
и работает или приостановленный, Вы не должны создавать новый объект сеанса, использующий этот метод. Приостановленные приложения перемещены в фон. Как только приложение работает снова,NSURLSession
объект с идентификатором получает события и обычно обрабатывает их.Во время запуска приложение не вызывает этот метод, если существуют загрузки, или загружает происходящий, но еще не законченный. Если Вы хотите вывести на экран текущий прогресс тех передач в пользовательском интерфейсе Вашего приложения, необходимо воссоздать сеанс, возражают себе. В той ситуации кэшируйте значение идентификатора постоянно и используйте его для воссоздания объекта сеанса.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
приложение (_: didRegisterForRemoteNotificationsWithDeviceToken:) - application:didRegisterForRemoteNotificationsWithDeviceToken:
Говорит делегату, что приложение успешно зарегистрировалось в Apple Push Notification service (APNs).
Объявление
Swift
optional func application(_
application
: UIApplication, didRegisterForRemoteNotificationsWithDeviceTokendeviceToken
: NSData)Objective C
- (void)application:(UIApplication *)
application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
Параметры
application
Объект приложения, инициировавший процесс регистрации удаленного уведомления.
deviceToken
Маркер, идентифицирующий устройство для APNs. Маркер является непрозрачным типом данных, потому что это - форма, которую провайдер должен представить серверам APNs, когда это отправляет уведомление устройству. Серверы APNs требуют двоичного формата по причинам производительности.
Размер маркера устройства составляет 32 байта.
Обратите внимание на то, что маркер устройства отличается от
uniqueIdentifier
свойствоUIDevice
когда устройство вытерто, потому что, для безопасности и причин конфиденциальности, это должно измениться.Обсуждение
После вызова
registerForRemoteNotifications
методUIApplication
когда регистрация устройств завершается успешно, объект, приложение вызывает этот метод. В Вашей реализации этого метода соединитесь со своим сервером уведомления нажатия и дайте маркер ему. APNs продвигает уведомления только устройству, представленному маркером.Приложение могло бы вызвать этот метод при других редких обстоятельствах, такой как тогда, когда пользователь запускает приложение, восстановив устройство от данных, которые не являются данными резервного копирования устройства. В этом исключительном случае приложение не будет знать маркер нового устройства, пока пользователь не запустит его.
Для получения дополнительной информации о том, как реализовать удаленные уведомления в Вашем приложении, см. Локальное и Удаленное Руководство по программированию Уведомления.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
приложение (_: didFailToRegisterForRemoteNotificationsWithError:) - application:didFailToRegisterForRemoteNotificationsWithError:
Отправленный делегату, когда служба Apple Push Notification не может успешно завершить процесс регистрации.
Объявление
Swift
optional func application(_
application
: UIApplication, didFailToRegisterForRemoteNotificationsWithErrorerror
: NSError)Objective C
- (void)application:(UIApplication *)
application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
Параметры
application
Объект приложения, инициировавший процесс регистрации удаленного уведомления.
error
NSError
объект, инкапсулирующий информацию, почему не успешно выполнялась регистрация. Приложение может принять решение вывести на экран эту информацию пользователю.Обсуждение
После вызова
registerForRemoteNotifications
методUIApplication
когда существует ошибка в процессе регистрации, объект, приложение вызывает этот метод.Для получения дополнительной информации о том, как реализовать удаленные уведомления в Вашем приложении, см. Локальное и Удаленное Руководство по программированию Уведомления.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
приложение (_: didReceiveRemoteNotification:fetchCompletionHandler:) - application:didReceiveRemoteNotification:fetchCompletionHandler:
Говорит приложению, что удаленное уведомление поступило, который указывает, что существуют данные, которые будут выбраны.
Объявление
Swift
optional func application(_
application
: UIApplication, didReceiveRemoteNotificationuserInfo
: [NSObject : AnyObject], fetchCompletionHandlerhandler
: (UIBackgroundFetchResult) -> Void)Objective C
- (void)application:(UIApplication *)
application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
Параметры
application
Одноэлементный объект приложения.
userInfo
Словарь, содержащий информацию, связанную с удаленным уведомлением, потенциально включая число значка для значка приложения, предупредительного звука, предупредительное сообщение для отображения пользователю, идентификатору уведомления и пользовательским данным. Провайдер порождает его как JSON-определенный словарь, который iOS преобразовывает в
NSDictionary
объект; словарь может содержать только объекты списка свойств плюсNSNull
. Для получения дополнительной информации о содержании удаленного словаря уведомления, см. Локальное и Удаленное Руководство по программированию Уведомления.handler
Блок для выполнения, когда работа загрузки завершена. При вызове этого блока передайте в значении результата выборки, лучше всего описывающем результаты работы загрузки. Вы должны вызвать этот обработчик и должны сделать так как можно скорее. Для списка возможных значений посмотрите
UIBackgroundFetchResult
ввести.Обсуждение
Используйте этот метод для обработки входящих удаленных уведомлений для приложения. В отличие от этого
application:didReceiveRemoteNotification:
метод, который вызывают только, когда Ваше приложение работает на переднем плане, системные вызовы этот метод, когда Ваше приложение работает на переднем плане или фоне. Кроме того, при включении удаленного фонового режима уведомлений система запускает приложение (или будит его от состояния ожидания), и помещает его, в фоновом режиме утверждают, когда поступает удаленное уведомление. Однако система автоматически не запускает Ваше приложение, если пользователь был завершен силой он. В той ситуации пользователь должен повторно запустить Ваше приложение или перезапустить устройство, прежде чем система попытается запустить Ваше приложение автоматически снова.Когда удаленное уведомление поступает, система выводит на экран уведомление пользователю и запускает приложение в фоновом режиме (в случае необходимости) так, чтобы это могло вызвать этот метод. Запуск Вашего приложения в фоновом режиме дает Вам время, чтобы обработать уведомление и загрузить любые данные, связанные с ним, минимизируя количество времени, протекающее между поступлением уведомления и отображением что данные пользователю.
Как только Вы заканчиваете обрабатывать уведомление, необходимо призвать блок
handler
параметр или Ваше приложение будут завершены. Ваше приложение имеет до 30 секунд тактового стеной времени, чтобы обработать уведомление и вызвать указанный блок обработчика завершения. На практике необходимо вызвать блок обработчика, как только Вы сделаны, обработав уведомление. Система отслеживает прошедшее время, использование питания и затраты данных для фоновых загрузок Вашего приложения. Приложения, использующие существенное количество питания при обработке удаленных уведомлений, не могут всегда будиться рано для обработки будущих уведомлений.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
приложение (_: handleActionWithIdentifier:forRemoteNotification:completionHandler:) - application:handleActionWithIdentifier:forRemoteNotification:completionHandler:
Говорит делегату приложения выполнять пользовательское действие, указанное удаленным уведомлением.
Объявление
Swift
optional func application(_
application
: UIApplication, handleActionWithIdentifieridentifier
: String?, forRemoteNotificationuserInfo
: [NSObject : AnyObject], completionHandlercompletionHandler
: () -> Void)Objective C
- (void)application:(UIApplication *)
application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
completionHandler:(void (^)(void))completionHandler
Параметры
application
Объект приложения, получивший удаленное уведомление.
identifier
Идентификатор связался с пользовательским действием.
userInfo
Словарь, содержащий информацию, связанную с удаленным уведомлением. Этот словарь происходит из провайдера как JSON-определенный словарь, который iOS преобразовывает в
NSDictionary
объект прежде, чем вызвать этот метод. Содержание словаря является удаленной полезной нагрузкой уведомления, состоящей только из объектов списка свойств плюсNSNull
. Для получения дополнительной информации о содержании удаленного словаря уведомления, см. Локальное и Удаленное Руководство по программированию Уведомления.completionHandler
Блок для выполнения, когда Вы закончены, выполнив указанное действие. Необходимо вызвать этот блок в конце метода.
Обсуждение
Когда пользователь касается кнопки действий на предупреждении, выведенном на экран в ответ на удаленное уведомление, приложение вызывает этот метод. Удаленные уведомления, включающие a
category
введите их кнопки отображения полезной нагрузки для действий в соответствующей категории. Если пользователь касается одной из тех кнопок, система будит приложение (запускающий ее в случае необходимости) и вызывает этот метод в фоновом режиме. Ваша реализация этого метода должна выполнить действие, связанное с указаннымidentifier
и выполните блок вcompletionHandler
параметр, как только Вы сделаны. Отказ выполнить блок обработчика завершения в конце Вашей реализации заставит Ваше приложение быть завершенным.Для конфигурирования действий для данной категории создайте a
UIUserNotificationActionSettings
объект и регистр это с приложением, когда Вы вызываетеregisterUserNotificationSettings:
метод.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
Говорит делегату, что запущенное приложение получило удаленное уведомление.
Объявление
Swift
optional func application(_
application
: UIApplication, didReceiveRemoteNotificationuserInfo
: [NSObject : AnyObject])Objective C
- (void)application:(UIApplication *)
application
didReceiveRemoteNotification:(NSDictionary *)userInfo
Параметры
application
Объект приложения, получивший удаленное уведомление.
userInfo
Словарь, содержащий информацию, связанную с удаленным уведомлением, потенциально включая число значка для значка приложения, предупредительного звука, предупредительное сообщение для отображения пользователю, идентификатору уведомления и пользовательским данным. Провайдер порождает его как JSON-определенный словарь, который iOS преобразовывает в
NSDictionary
объект; словарь может содержать только объекты списка свойств плюсNSNull
.Обсуждение
Реализуйте
application:didReceiveRemoteNotification:fetchCompletionHandler:
метод вместо этого, когда это возможно. Если Ваш делегат реализует оба метода, вызовы объектов приложенияapplication:didReceiveRemoteNotification:fetchCompletionHandler:
метод.Если приложение работает, приложение вызывает этот метод для обработки входящих удаленных уведомлений.
userInfo
словарь содержитaps
ключ, значение которого является другим словарем с остающимися данными уведомления. Несмотря на то, что Вам не должна быть нужна информация вaps
словарь, можно получить его содержание с помощью следующих ключей:alert
— Значение является или строкой для предупредительного сообщения или словарем с двумя ключами:body
иshow-view
. Значениеbody
ключ является строкой, содержащей предупредительное сообщение и значениеshow-view
ключ является булевской переменной. Если значениеshow-view
ключfalse
, кнопка View предупреждения не показана. Значение по умолчанию должно показать кнопку View, если пользователь касается его, запускающую приложение.badge
— Число, указывающее количество элементов данных для загрузки с провайдера. Это число должно быть выведено на экран на значке приложения. Отсутствие abadge
свойство указывает, что должно быть удалено любое число в настоящее время применение идентификационных знаков значок.sound
— Имя звукового файла в комплекте приложений для игры как предупредительный звук. Если «значение по умолчанию» указано, звук по умолчанию должен играться.
userInfo
словарю мог также определить пользовательские данные провайдер согласно схеме JSON. Свойства для пользовательских данных должны быть указаны на том же уровне какaps
словарь. Однако пользовательски определенные свойства не должны использоваться для транспорта данных большого объема, потому что существует строгий предел размера на уведомление (256 байтов), и поставка не гарантируется.Если приложение не работает, когда удаленное уведомление поступает, метод запускает приложение и предоставляет надлежащую информацию в словаре опций запуска. Приложение не вызывает этот метод для обработки того удаленного уведомления. Вместо этого Ваша реализация
application:willFinishLaunchingWithOptions:
илиapplication:didFinishLaunchingWithOptions:
метод должен получить удаленные данные полезной нагрузки уведомления и ответить соответственно.Для получения дополнительной информации о том, как реализовать удаленные уведомления в Вашем приложении, см. Локальное и Удаленное Руководство по программированию Уведомления.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Отправленный делегату, когда запущенное приложение получает локальное уведомление.
Объявление
Swift
optional func application(_
application
: UIApplication, didReceiveLocalNotificationnotification
: UILocalNotification)Objective C
- (void)application:(UIApplication *)
application
didReceiveLocalNotification:(UILocalNotification *)notification
Параметры
application
Объект приложения, получивший локальное уведомление.
notification
Локальное уведомление, инкапсулирующее подробные данные об уведомлении, потенциально включая пользовательские данные.
Обсуждение
Локальные уведомления подобны удаленным уведомлениям, но отличаются, в котором они запланированы, выведены на экран и получены полностью на том же устройстве. Приложение может создать и запланировать локальное уведомление, и операционная система тогда поставляет его в запланированной дате и времени. Если приложение не активно на переднем плане, когда уведомление стреляет, система использует информацию в
UILocalNotification
объект определить, должно ли это вывести на экран предупреждение, значок значок приложения, или играть звук. Если приложение работает на переднем плане, системные вызовы этот метод непосредственно, не предупреждая пользователя всегда.Вы могли бы реализовать этот метод в своем делегате, если Вы хотите быть уведомленными, что произошло локальное уведомление. Например, календарное приложение могло бы использовать локальные уведомления для предупреждения пользователя к предстоящим событиям.
Если пользователь принимает решение открыть приложение, когда локальное уведомление происходит, словарь опций запуска передал
application:willFinishLaunchingWithOptions:
иapplication:didFinishLaunchingWithOptions:
методы содержатUIApplicationLaunchOptionsLocalNotificationKey
ключ. Этот метод вызывают в некоторый момент после Вашего делегатаapplication:didFinishLaunchingWithOptions:
метод.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 4.0 и позже.
-
приложение (_: handleActionWithIdentifier:forLocalNotification:completionHandler:) - application:handleActionWithIdentifier:forLocalNotification:completionHandler:
Говорит делегату, что пользователь выбрал пользовательское действие из предупредительной панели локального уведомления.
Объявление
Swift
optional func application(_
application
: UIApplication, handleActionWithIdentifieridentifier
: String?, forLocalNotificationnotification
: UILocalNotification, completionHandlercompletionHandler
: () -> Void)Objective C
- (void)application:(UIApplication *)
application
handleActionWithIdentifier:(NSString *)identifier
forLocalNotification:(UILocalNotification *)notification
completionHandler:(void (^)(void))completionHandler
Параметры
application
Объект приложения, получивший локальное уведомление.
identifier
Идентификатор связался с пользовательским действием. Эта строка соответствует идентификатору от
UILocalNotificationAction
объект, использовавшийся для конфигурирования действия в локальном уведомлении.notification
Инициированный локальный объект уведомления.
completionHandler
Блок для вызова, когда Вы закончены, выполнив действие.
Обсуждение
Когда пользователь касается кнопки действий на предупреждении, выведенном на экран в ответ на локальное уведомление, приложение вызывает этот метод. Локальные уведомления, включающие зарегистрированное название категории в их
category
кнопки отображения свойства для действий в той категории. Если пользователь касается одной из тех кнопок, система будит приложение (запускающий ее в случае необходимости) и вызывает этот метод в фоновом режиме. Ваша реализация этого метода должна выполнить действие, связанное с указаннымidentifier
и выполните блок вcompletionHandler
параметр, как только Вы сделаны. Отказ выполнить блок обработчика завершения в конце Вашей реализации заставит Ваше приложение быть завершенным.Для конфигурирования действий для данной категории создайте a
UIUserNotificationActionSettings
объект и регистр это с приложением, когда Вы вызываетеregisterUserNotificationSettings:
метод.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
приложение (_: didRegisterUserNotificationSettings:) - application:didRegisterUserNotificationSettings:
Говорит делегату, какие типы уведомлений могут использоваться для привлечения внимания пользователя.
Объявление
Swift
optional func application(_
application
: UIApplication, didRegisterUserNotificationSettingsnotificationSettings
: UIUserNotificationSettings)Objective C
- (void)application:(UIApplication *)
application
didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
Параметры
application
Объект приложения, зарегистрировавший пользовательские настройки уведомлений.
notificationSettings
Пользовательские настройки уведомлений, которые доступны Вашему приложению. Настройки в этом объекте могут отличаться, чем те, Вы первоначально запросили.
Обсуждение
Приложения, использующие локальные или удаленные уведомления для предупреждения пользователя к новой информации, должны зарегистрировать типы уведомлений, которые они хотят использовать путем вызова
registerUserNotificationSettings:
метод объекта приложения. (В приложениях, соединяющихся на версиях iOS до 8,0, регистрация может также произойти неявно при планировании локального уведомления.) Запрос Вашего приложения объединен с текущими предпочтениями пользователя для определения то, какие типы уведомления позволяются, и результаты поставлены к этому методу вnotificationSettings
параметр.В первый раз, когда Вы регистрируете предпочтительные типы уведомления своего приложения, система спрашивает пользователя, нужно ли Вашему приложению позволить поставить уведомления и хранит ответ пользователя. Система не предлагает пользователю во время последующих регистрационных попыток. Пользователь может всегда изменять предпочтения уведомления с помощью приложения Настроек.
Поскольку предпочтения пользователя могут измениться, необходимо всегда проверять содержание
notificationSettings
параметр. Эти настройки управляют только, уведомляется ли пользователь о локальном или удаленном уведомлении. Уведомление все еще поставлено Вашему приложению в подходящее время.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
Когда приложение получает предупреждение памяти от системы, говорит делегату.
Объявление
Swift
optional func applicationDidReceiveMemoryWarning(_
application
: UIApplication)Objective C
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Ваша реализация этого метода должна высвободить как можно больше памяти путем чистки объектов кэшированных данных, которые могут быть воссозданы (или перезагружены от диска), позже. Вы используете этот метод в сочетании с
didReceiveMemoryWarning
изUIViewController
класс иUIApplicationDidReceiveMemoryWarningNotification
уведомление для выпуска памяти всюду по приложению.Строго рекомендуется реализовать этот метод. Если Ваше приложение не выпускает достаточно памяти во время условий низкой памяти, система может завершить его напрямую.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
didReceiveMemoryWarning
(UIViewController)UIApplicationDidReceiveMemoryWarningNotification
-
Когда существует существенное изменение во время, говорит делегату.
Объявление
Swift
optional func applicationSignificantTimeChange(_
application
: UIApplication)Objective C
- (void)applicationSignificantTimeChange:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Примеры значительных изменений времени включают поступление полуночи, обновление времени поставщиком услуг и изменение в летнем времени. Делегат может реализовать этот метод для корректировки любого объекта приложения, которое выводит на экран время или чувствительно к изменениям времени.
До вызова этого метода приложение также отправляет a
UIApplicationSignificantTimeChangeNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на изменение.Если Ваше приложение в настоящее время приостанавливается, это сообщение ставится в очередь, пока Ваше приложение не возвращается в передний план, в которой точке это поставлено. Если многократные изменения времени происходят, только новый поставлен.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
приложение (_: handleWatchKitExtensionRequest:reply:) - application:handleWatchKitExtensionRequest:reply:
Просит делегат реагировать на запрос из парного приложения WatchKit.
Объявление
Swift
optional func application(_
application
: UIApplication, handleWatchKitExtensionRequestuserInfo
: [NSObject : AnyObject]?, replyreply
: (([NSObject : AnyObject]!) -> Void)!)Objective C
- (void)application:(UIApplication *)
application
handleWatchKitExtensionRequest:(NSDictionary *)userInfo
reply:(void (^)(NSDictionary *replyInfo))reply
Параметры
application
Одноэлементный объект приложения.
userInfo
Словарь, предоставленный приложением WatchKit информацию о запросе. Используйте данные в этом словаре для обработки запроса из приложения WatchKit.
reply
Блок для выполнения с результатами запроса. Этот блок не имеет никакого возвращаемого значения и берет следующий параметр:
replyInfo
Словарь, содержащий данные для возврата к приложению WatchKit. Содержание словаря должно быть сериализуемым к файлу списка свойств. Содержание этого словаря по Вашему усмотрению, и можно указать
nil
.Обсуждение
Если Ваше приложение для iOS и усилия по координате приложения WatchKit выполнить определенные задачи, реализуйте этот метод и используйте его для ответа на запросы из приложения WatchKit. После окончания запроса выполните предоставленное
reply
блок (если таковые имеются) для возврата результатов.Поскольку этот метод, вероятно, вызовут, в то время как Ваше приложение в фоновом режиме, вызовите
beginBackgroundTaskWithName:expirationHandler:
метод в начале Вашей реализации иendBackgroundTask:
метод после того, как Вы обработали ответ и выполнилисьreply
блок. Запуск фоновой задачи гарантирует, что Ваше приложение не приостановлено, прежде чем это будет иметь возможность отправить ее ответ.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.2 и позже.
-
Спрашивает делегат, должно ли быть сохранено состояние приложения.
Объявление
Swift
optional func application(_
application
: UIApplication, shouldSaveApplicationStatecoder
: NSCoder) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
shouldSaveApplicationState:(NSCoder *)coder
Параметры
application
Одноэлементный объект приложения.
coder
Включенный archiver, в который можно поместить высокоуровневую информацию состояния.
Возвращаемое значение
YES
true
если состояние приложения должно быть сохранено илиNO
false
если это не должно.Обсуждение
Приложения должны реализовать этот метод и
application:shouldRestoreApplicationState:
метод для сохранения состояния для появления. Кроме того, Ваша реализация этого метода должна возвратитьсяYES
true
каждый раз UIKit пытается сохранить состояние Вашего приложения. Можно возвратитьсяNO
false
отключить сохранение состояния временно. Например, во время тестирования, Вы могли отключить сохранение состояния для тестирования определенных путей выполнения кода.Можно добавить информацию о версии, или любые другие контекстные данные к предоставленному кодеру возражают по мере необходимости. Во время восстановления можно использовать ту информацию, чтобы помочь решить, продолжить ли с восстановлением приложения к его предыдущему состоянию.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Спрашивает делегат, должна ли быть восстановлена сохраненная информация приложения состояния.
Объявление
Swift
optional func application(_
application
: UIApplication, shouldRestoreApplicationStatecoder
: NSCoder) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
shouldRestoreApplicationState:(NSCoder *)coder
Параметры
application
Одноэлементный объект приложения.
coder
Включенный archiver, содержащий ранее сохраненную информацию приложения состояния.
Возвращаемое значение
YES
true
если состояние приложения должно быть восстановлено илиNO
false
если это не должно.Обсуждение
Приложения должны реализовать этот метод и
application:shouldSaveApplicationState:
метод для сохранения состояния для появления. Кроме того, Ваша реализация этого метода должна возвратитьсяYES
true
каждый раз UIKit пытается восстановить состояние Вашего приложения. Можно использовать информацию в предоставленном объекте кодера решить, продолжить ли с восстановлением состояния. Например, Вы могли бы возвратитьсяNO
false
если данные в кодере от различной версии Вашего приложения и не могут быть эффективно восстановлены текущей версии.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
приложение (_: viewControllerWithRestorationIdentifierPath:coder:) - application:viewControllerWithRestorationIdentifierPath:coder:
Просит делегат обеспечивать указанный контроллер представления.
Объявление
Swift
optional func application(_
application
: UIApplication, viewControllerWithRestorationIdentifierPathidentifierComponents
: [AnyObject], codercoder
: NSCoder) -> UIViewController?Objective C
- (UIViewController *)application:(UIApplication *)
application
viewControllerWithRestorationIdentifierPath:(NSArray *)identifierComponents
coder:(NSCoder *)coder
Параметры
application
Одноэлементный объект приложения.
identifierComponents
Массив
NSString
объекты, соответствующие идентификаторам восстановления желаемого контроллера представления и всем его наследователям в иерархии контроллера представления. Последнее значение в массиве является идентификатором восстановления желаемого контроллера представления. Более ранние записи представляют идентификаторы восстановления его наследователей.coder
Включенный archiver, содержащий сохраненную информацию приложения состояния.
Возвращаемое значение
Контроллер представления возражает для использования или
nil
если делегат приложения не предоставляет этот контроллер представления. Если возвращается этот методnil
, UIKit пытается найти контроллер представления неявно с помощью доступного тракта восстановления и информации о раскадровке.Обсуждение
Во время восстановления состояния, когда UIKit встречается с контроллером представления без класса восстановления, он вызывает этот метод для выяснения соответствующий объект контроллера представления. Ваша реализация этого метода должна создать (или найти), соответствующий объект контроллера представления, и возвратите его. Если Ваш делегат приложения не обеспечивает контроллер представления, возвратиться
nil
.Вы используете строки в
identifierComponents
параметр для идентификации контроллера представления, который требуют. Контроллеры представления в Вашем приложении формируют иерархию. В корне этой иерархии корневой контроллер представления окна, который сам может представить или встроить другие контроллеры представления. Те представленные или встроенные контроллеры представления могут самостоятельно представить и встроить другие контроллеры представления. Результатом является иерархия отношений контроллера представления с каждым представленным или встроенным контроллером представления, становящимся дочерним элементом контроллера представления, представившего или встроившего его. Строки вidentifierComponents
массив идентифицирует путь через эту иерархию с корневого контроллера представления на желаемый контроллер представления.Не всегда необходимо создать новый объект контроллера представления в Вашей реализации этого метода. Можно также возвратить существующий объект контроллера представления, создававшийся другим, означает. Например, Вы всегда возвращали бы существующие контроллеры представления, загруженные из основного файла раскадровки Вашего приложения, а не создавали бы новые объекты.
Ваша реализация этого метода может использовать любые данные в предоставленном
coder
помогать в процессе восстановления. Однако Вы обычно не должны восстанавливать все состояние контроллера представления в этой точке. Во время более поздней передачи просмотрите контроллеры, определяющие adecodeRestorableStateWithCoder:
методу обычно дают, шанс восстановить их состояние формируют тот же объект кодера. Точно так же у делегата приложения самостоятельно есть aapplication:didDecodeRestorableStateWithCoder:
метод, который можно использовать для получения информации о состоянии уровня соответствующего приложения.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
приложение (_: willEncodeRestorableStateWithCoder:) - application:willEncodeRestorableStateWithCoder:
Говорит Вашему делегату сохранять любую высокоуровневую информацию состояния в начале процесса сохранения состояния.
Объявление
Swift
optional func application(_
application
: UIApplication, willEncodeRestorableStateWithCodercoder
: NSCoder)Objective C
- (void)application:(UIApplication *)
application
willEncodeRestorableStateWithCoder:(NSCoder *)coder
Параметры
application
Одноэлементный объект приложения.
coder
Включенный archiver, в котором можно записать любую информацию состояния.
Обсуждение
Системные вызовы сохранения состояния этот метод в начале процесса сохранения. Это - Ваша возможность добавить любую информацию об уровне приложения для утверждения информации. Например, Вы могли бы использовать этот метод для записи информации о версии или высокоуровневой конфигурации приложения.
Ваша реализация этого метода может закодировать восстановимое представление и просмотреть объекты контроллера, что это должно сослаться. Кодирование восстановимого контроллера представления или представления пишет что идентификатор восстановления объекта в кодер. (Что идентификатор используется во время процесса декодирования для определения местоположения новой версии объекта.), Если контроллер представления или представления определяет a
encodeRestorableStateWithCoder:
метод, тот метод также вызывают в некоторый момент так, чтобы объект мог закодировать свое собственное состояние.Кроме представлений и контроллеров представления, другие объекты следуют за нормальным процессом сериализации и должны принять
NSCoding
протокол, прежде чем они смогут быть закодированы. Кодирование таких объектов встраивает содержание объекта в архив непосредственно. Во время процесса декодирования новый объект создается и инициализируется с данными от архива.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Говорит Вашему делегату восстанавливать любую высокоуровневую информацию состояния как часть процесса восстановления состояния.
Объявление
Swift
optional func application(_
application
: UIApplication, didDecodeRestorableStateWithCodercoder
: NSCoder)Objective C
- (void)application:(UIApplication *)
application
didDecodeRestorableStateWithCoder:(NSCoder *)coder
Параметры
application
Одноэлементный объект приложения.
coder
Включенный archiver, содержащий ранее сохраненную информацию приложения состояния.
Обсуждение
Система резервирования состояния вызывает этот метод как последний шаг в процессе восстановления состояния. К тому времени, когда этот метод вызывают, все другие восстановимые объекты будут восстановлены и отложены в их предыдущее состояние. Можно использовать этот метод для чтения любых высокоуровневых данных приложения, которые Вы сохранили в
application:willEncodeRestorableStateWithCoder:
метод и применяет его к Вашему приложению.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
приложение (_: openURL:sourceApplication:annotation:) - application:openURL:sourceApplication:annotation:
Просит делегат открывать ресурс, идентифицированный URL.
Объявление
Swift
optional func application(_
application
: UIApplication, openURLurl
: NSURL, sourceApplicationsourceApplication
: String?, annotationannotation
: AnyObject?) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
Параметры
application
Одноэлементный объект приложения.
url
Ресурс URL для открытия. Этот ресурс может быть сетевым ресурсом или файлом. Для получения информации о зарегистрированных Apple схемах URL посмотрите Apple Ссылка Схемы URL.
sourceApplication
ID пакета приложения, запрашивающего Ваше приложение открыть URL (
url
).annotation
Объект списка свойств, предоставленный исходным приложением для передачи информации к приложению получения.
Возвращаемое значение
YES
true
если делегат успешно обработал запрос илиNO
false
если попытка открыть ресурс URL перестала работать.Обсуждение
Ваша реализация этого метода должна открыть указанный URL и обновить его пользовательский интерфейс соответственно. Если Ваше приложение должно было быть запущено для открытия URL, приложение вызывает
application:willFinishLaunchingWithOptions:
иapplication:didFinishLaunchingWithOptions:
методы сначала, сопровождаемый этим методом. Возвращаемые значения тех методов могут использоваться, чтобы препятствовать тому, чтобы был вызван этот метод. (Если приложение уже работает, только этот метод вызывают.)Если URL относится к файлу, открытому через контроллер взаимодействия документа,
annotation
параметр может содержать дополнительные данные, которые исходное приложение хотело отправить вместе с URL. Формат этих данных определяется приложением, отправившим его, но данные должны состоять из объектов, которые могут быть помещены в список свойств.Файлы, отправленные в Ваше приложение через AirDrop или контроллер взаимодействия документа, помещаются в
Documents/Inbox
каталог корневого каталога Вашего приложения. Ваше приложение имеет разрешение считать и удалить файлы в этом каталоге, но не имеет разрешения записать в них. Если Вы хотите изменить файл, необходимо переместить его в различный каталог сначала. Кроме того, файлы в том каталоге обычно шифруются с помощью защиты данных. Если файл будет защищен, и пользователь блокирует устройство, прежде чем этот метод вызовут, то Вы будете неспособны считать содержание файла сразу. В этом случае необходимо сохранить URL и попытаться открыть файл позже, а не возвратNO
false
от этого метода. ИспользуйтеprotectedDataAvailable
свойство приложения возражает, чтобы определить, включается ли в настоящее время защита данных.Нет никакого уведомления соответствия для этого метода.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 4.2 и позже.
См. также
openURL:
(UIApplication
)– application:didFinishLaunchingWithOptions:
-
Говорит делегату, что пользователь хочет продолжать действие, данные которого еще не могли бы быть доступными.
Объявление
Swift
optional func application(_
application
: UIApplication, willContinueUserActivityWithTypeuserActivityType
: String) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
willContinueUserActivityWithType:(NSString *)userActivityType
Параметры
application
Объект общего приложения.
userActivityType
Требуемый тип действия.
Возвращаемое значение
YES
true
если Вы уведомляете пользователя, что Ваше приложение собирается продолжать действие илиNO
false
если Вы хотите, чтобы iOS уведомил пользователя.Обсуждение
Используйте этот метод для обеспечения непосредственной обратной связи для пользователя, что действие собирается продолжить это устройство. Приложение вызывает этот метод, как только пользователь подтверждает, что действие должно продолжаться, но возможно прежде чем данные, связанные с тем действием, доступны.
Ваша реализация этого метода должна подготовить инициировать действие. При уведомлении пользователя как части приготовлений возвратиться
YES
true
от этого метода так, чтобы iOS не выводил на экран его собственное уведомление. Если Вы не реализуете этот метод или Ваши возвраты реализацииNO
false
, iOS выводит на экран его собственное уведомление пользователю.Этот метод не вызывают если также
application:willFinishLaunchingWithOptions:
илиapplication:didFinishLaunchingWithOptions:
возвратыNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
приложение (_: continueUserActivity:restorationHandler:) - application:continueUserActivity:restorationHandler:
Говорит делегату, что данные для продолжения действия доступны.
Объявление
Swift
optional func application(_
application
: UIApplication, continueUserActivityuserActivity
: NSUserActivity, restorationHandlerrestorationHandler
: ([AnyObject]!) -> Void) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler
Параметры
application
Объект общего приложения.
userActivity
Объект действия, содержащий данные, связанные с задачей пользователь, выполнял. Используйте данные в этом объекте воссоздать то, что делал пользователь.
restorationHandler
Блок, чтобы выполниться, если Ваше приложение создает объекты выполнить задачу. Вызов этого блока является дополнительным, и можно скопировать этот блок и вызвать его в более позднее время. При вызове сохраненной копии блока необходимо вызвать его от основного потока приложения. Этот блок не имеет никакого возвращаемого значения и берет следующий параметр:
restorableObjects
Массив
UIResponder
объекты, представляющие, возражают, что Вы создали или выбрали для выполнения работы. Системные вызовыrestoreUserActivityState:
метод каждого объекта в массиве, чтобы дать ему шанс выполнить работу.Возвращаемое значение
YES
true
указать, что Ваше приложение обработало действие илиNO
false
позволять iOS знать, что Ваше приложение не обрабатывало действие.Обсуждение
Приложение вызывает этот метод, когда это получает данные, связанные с пользовательским действием. Этот метод является Вашей возможностью обновить Ваше приложение так, чтобы это могло выполнить связанную задачу. Если Ваша реализация возвращается, если Вы не реализуете этот метод или
NO
false
, iOS пытается создать документ для Вашего приложения для открытия использования URL.Призыв блока
restorationHandler
когда конкретные объекты способны к продолжению действия, является дополнительным и является только необходимым.Этот метод не вызывают если также
application:willFinishLaunchingWithOptions:
илиapplication:didFinishLaunchingWithOptions:
возвратыNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
Говорит делегату, что было обновлено действие. (требуемый)
Объявление
Swift
optional func application(_
application
: UIApplication, didUpdateUserActivityuserActivity
: NSUserActivity)Objective C
- (void)application:(UIApplication *)
application
didUpdateUserActivity:(NSUserActivity *)userActivity
Параметры
application
Объект общего приложения.
userActivity
Объект действия, содержащий данные, связанные с задачей пользователь, выполнял.
Обсуждение
Когда пользовательское действие, которым управляет UIKit, было обновлено, этот метод вызывают на основном потоке. Можно реализовать этот метод как заключительную возможность добавить данные к пользовательскому объекту действия.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
приложение (_: didFailToContinueUserActivityWithType:error:) - application:didFailToContinueUserActivityWithType:error:
Говорит делегату, что не могло продолжаться действие.
Объявление
Swift
optional func application(_
application
: UIApplication, didFailToContinueUserActivityWithTypeuserActivityType
: String, errorerror
: NSError)Objective C
- (void)application:(UIApplication *)
application
didFailToContinueUserActivityWithType:(NSString *)userActivityType
error:(NSError *)error
Параметры
application
Объект общего приложения.
userActivityType
Опробованный тип действия.
error
Ошибочный объект указание причины отказа.
Обсуждение
Используйте этот метод, чтобы позволить пользователю знать, что не могло продолжаться указанное действие. Если Вы не реализуете этот метод, UIKit выводит на экран ошибку пользователю с надлежащим сообщением о причине отказа.
Этот метод не вызывают если также
application:willFinishLaunchingWithOptions:
илиapplication:didFinishLaunchingWithOptions:
возвратыNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
приложение (_: shouldAllowExtensionPointIdentifier:) - application:shouldAllowExtensionPointIdentifier:
ТребуемыйПросит делегат давать разрешение использовать расширения приложения, основывающиеся на указанном идентификаторе точки расширения. (требуемый)
Объявление
Swift
optional func application(_
application
: UIApplication, shouldAllowExtensionPointIdentifierextensionPointIdentifier
: String) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier
Параметры
application
Объект общего приложения.
extensionPointIdentifier
Постоянная идентификация точки расширения.
Возвращаемое значение
NO
false
запрещать использование указанного типа расширения приложения, илиYES
true
позволить использование типа.Обсуждение
Можно реализовать этот метод для отклонения указанного типа расширения приложения, на основе его идентификатора точки расширения, от использования в приложении. Посмотрите Константы Идентификатора Точки расширения в Ссылке класса UIApplication.
Если Вы не реализуете этот метод, все типы расширения приложения доступны для использования в Вашем приложении.
В iOS 8.0 единственный тип расширения приложения, которое можно отклонить, является пользовательской клавиатурой. Для получения информации о расширениях приложения см. Руководство по программированию Расширения Приложения.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
приложение (_: willChangeStatusBarOrientation:duration:) - application:willChangeStatusBarOrientation:duration:
Когда интерфейсная ориентация строки состояния собирается измениться, говорит делегату.
Объявление
Swift
optional func application(_
application
: UIApplication, willChangeStatusBarOrientationnewStatusBarOrientation
: UIInterfaceOrientation, durationduration
: NSTimeInterval)Objective C
- (void)application:(UIApplication *)
application
willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation
duration:(NSTimeInterval)duration
Параметры
application
Одноэлементный объект приложения.
newStatusBarOrientation
Константа, указывающая новую ориентацию пользовательского интерфейса приложения; посмотрите Изменения состояния Приложения мониторинга для подробных данных.
duration
Продолжительность анимации к новой ориентации, в секундах.
Обсуждение
Делегат обычно реализует этот метод для подготовки его окон и представлений для новой ориентации. Делегат может получить текущую ориентацию устройства от совместно используемого
UIDevice
объект.После вызова этого метода приложение также отправляет a
UIApplicationWillChangeStatusBarOrientationNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на изменение.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Когда интерфейсная ориентация строки состояния изменилась, говорит делегату.
Объявление
Swift
optional func application(_
application
: UIApplication, didChangeStatusBarOrientationoldStatusBarOrientation
: UIInterfaceOrientation)Objective C
- (void)application:(UIApplication *)
application
didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
Параметры
application
Одноэлементный объект приложения.
oldStatusBarOrientation
Константа, указывающая предыдущую ориентацию пользовательского интерфейса приложения; посмотрите Изменения состояния Приложения мониторинга для подробных данных.
Обсуждение
Делегат может получить текущую ориентацию устройства от совместно используемого
UIDevice
объект.После вызова этого метода приложение также отправляет a
UIApplicationDidChangeStatusBarOrientationNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на изменение.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Когда кадр строки состояния собирается измениться, говорит делегату.
Объявление
Swift
optional func application(_
application
: UIApplication, willChangeStatusBarFramenewStatusBarFrame
: CGRect)Objective C
- (void)application:(UIApplication *)
application
willChangeStatusBarFrame:(CGRect)newStatusBarFrame
Параметры
application
Одноэлементный объект приложения.
newStatusBarFrame
Измененный кадр строки состояния, в координатах экрана.
Обсуждение
Приложение вызывает этот метод, когда это получает a
setStatusBarOrientation:animated:
обменивайтесь сообщениями и собирается изменить интерфейсную ориентацию.После вызова этого метода приложение также отправляет a
UIApplicationWillChangeStatusBarFrameNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на изменение.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Когда кадр строки состояния изменился, говорит делегату.
Объявление
Swift
optional func application(_
application
: UIApplication, didChangeStatusBarFrameoldStatusBarFrame
: CGRect)Objective C
- (void)application:(UIApplication *)
application
didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
Параметры
application
Одноэлементный объект приложения.
oldStatusBarFrame
Предыдущий кадр строки состояния, в координатах экрана.
Обсуждение
После вызова этого метода приложение также отправляет a
UIApplicationDidChangeStatusBarFrameNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на изменение.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Говорит делегату, что защищенные файлы собираются стать недоступными.
Объявление
Swift
optional func applicationProtectedDataWillBecomeUnavailable(_
application
: UIApplication)Objective C
- (void)applicationProtectedDataWillBecomeUnavailable:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
На устройстве, использующем защиту содержания, защищенные файлы хранятся в зашифрованном виде и делаются доступный только в определенные времена, обычно когда разблокировано устройство. Это уведомление позволяет Вашему приложению знать, что устройство собирается быть заблокированным и что любые защищенные файлы, к которым это в настоящее время получает доступ, могли бы стать недоступными вскоре.
Если Ваше приложение в настоящее время получает доступ к защищенному файлу, можно использовать этот метод для выпуска любых ссылок на тот файл. Несмотря на то, что это не ошибка получить доступ к файлу, в то время как устройство заблокировано, любые попытки сделать так перестанут работать. Поэтому, если Ваше приложение зависит от файла, Вы могли бы хотеть предпринять шаги для избегания использования того файла, в то время как заблокировано устройство.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 4.0 и позже.
-
Говорит делегату, что защищенные файлы доступны теперь.
Объявление
Swift
optional func applicationProtectedDataDidBecomeAvailable(_
application
: UIApplication)Objective C
- (void)applicationProtectedDataDidBecomeAvailable:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
На устройстве, использующем защиту содержания, защищенные файлы хранятся в зашифрованном виде и делаются доступный только в определенные времена, обычно когда разблокировано устройство. Это уведомление позволяет Вашему приложению знать, что устройство теперь разблокировано и что можно получить доступ к определенным типам защищенных файлов снова.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 4.0 и позже.
-
приложение (_: supportedInterfaceOrientationsForWindow:) - application:supportedInterfaceOrientationsForWindow:
Просит делегат к интерфейсным ориентациям использовать для контроллеров представления в указанном окне.
Объявление
Swift
optional func application(_
application
: UIApplication, supportedInterfaceOrientationsForWindowwindow
: UIWindow?) -> IntObjective C
- (NSUInteger)application:(UIApplication *)
application
supportedInterfaceOrientationsForWindow:(UIWindow *)window
Параметры
application
Одноэлементный объект приложения.
window
Окно, интерфейсные ориентации которого Вы хотите получить.
Возвращаемое значение
Немного маски
UIInterfaceOrientationMask
константы, указывающие ориентации для использования для контроллеров представления.Обсуждение
Этот метод возвращает общий набор интерфейсных ориентаций, поддерживаемых приложением. При определении, повернуть ли определенный контроллер представления, ориентации, возвращенные этим методом, пересечены с ориентациями, поддерживаемыми, полностью просматривают контроллер или самый верхний представленный контроллер представления. Приложение и контроллер представления должны согласиться, прежде чем будет позволено вращение.
Если Вы не реализуете этот метод, приложение использует значения в
UIInterfaceOrientation
ключ приложенияInfo.plist
как интерфейсные ориентации по умолчанию.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Когда приложение закончило запускаться, говорит делегату.
Объявление
Swift
optional func applicationDidFinishLaunching(_
application
: UIApplication)Objective C
- (void)applicationDidFinishLaunching:(UIApplication *)
application
Параметры
application
Одноэлементный объект приложения.
Обсуждение
Несмотря на то, что не формально осуждаемый, Вы не должны использовать этот метод в своих приложениях. Используйте
application:willFinishLaunchingWithOptions:
иapplication:didFinishLaunchingWithOptions:
методы вместо этого.Ваша реализация этого метода должна создать пользовательский интерфейс Вашего приложения и инициализировать структуры данных приложения. Если бы Ваше приложение сохраняет свое состояние между запусками, Вы также использовали бы этот метод для восстановления приложения к его предыдущему состоянию.
После вызова этого метода приложение также отправляет a
UIApplicationDidFinishLaunchingNotification
уведомление, чтобы дать заинтересованным объектам шанс реагировать на цикл инициализации.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Просит делегат открывать ресурс, идентифицированный URL.
Используйте
application:openURL:sourceApplication:annotation:
метод вместо этого.Объявление
Swift
optional func application(_
application
: UIApplication, handleOpenURLurl
: NSURL) -> BoolObjective C
- (BOOL)application:(UIApplication *)
application
handleOpenURL:(NSURL *)url
Параметры
application
Одноэлементный объект приложения.
url
Объект, представляющий URL (Унифицированный указатель ресурсов). См. приложение Руководства по программированию Приложения для iOS для зарегистрированных Apple схем URLs.
Возвращаемое значение
YES
true
если делегат успешно обработал запрос;NO
false
если попытка обработать URL перестала работать.Обсуждение
Если делегат также реализует
application:openURL:sourceApplication:annotation:
метод, тот метод вызывают вместо этого.Если делегат возвращается, этот метод не вызывают
NO
false
от обоихapplication:willFinishLaunchingWithOptions:
иapplication:didFinishLaunchingWithOptions:
методы. (Если только один из этих двух методов реализован, его возвращаемое значение определяет, вызывают ли этот метод.), Если Ваше приложение реализуетapplicationDidFinishLaunching:
метод вместоapplication:didFinishLaunchingWithOptions:
, этот метод вызывают для открытия указанного URL после того, как было инициализировано приложение.Если URL поступает, в то время как Ваше приложение приостановлено или работающий в фоновом режиме, система перемещает Ваше приложение в передний план до вызова этого метода.
Нет никакого эквивалентного уведомления для этого метода делегации.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
openURL:
(UIApplication
)– application:willFinishLaunchingWithOptions:
– application:didFinishLaunchingWithOptions:
-
Ключи раньше получали доступ к значениям в словаре опций запуска, переданном
application:willFinishLaunchingWithOptions:
иapplication:didFinishLaunchingWithOptions:
методы делегата приложения.Объявление
Swift
let UIApplicationLaunchOptionsURLKey: String let UIApplicationLaunchOptionsSourceApplicationKey: String let UIApplicationLaunchOptionsRemoteNotificationKey: String let UIApplicationLaunchOptionsAnnotationKey: String let UIApplicationLaunchOptionsLocalNotificationKey: String let UIApplicationLaunchOptionsLocationKey: String let UIApplicationLaunchOptionsNewsstandDownloadsKey: String let UIApplicationLaunchOptionsBluetoothCentralsKey: String let UIApplicationLaunchOptionsBluetoothPeripheralsKey: String let UIApplicationLaunchOptionsUserActivityDictionaryKey: String let UIApplicationLaunchOptionsUserActivityTypeKey: String
Objective C
NSString *const UIApplicationLaunchOptionsURLKey; NSString *const UIApplicationLaunchOptionsSourceApplicationKey; NSString *const UIApplicationLaunchOptionsRemoteNotificationKey; NSString *const UIApplicationLaunchOptionsAnnotationKey; NSString *const UIApplicationLaunchOptionsLocalNotificationKey; NSString *const UIApplicationLaunchOptionsLocationKey; NSString *const UIApplicationLaunchOptionsNewsstandDownloadsKey; NSString *const UIApplicationLaunchOptionsBluetoothCentralsKey; NSString *const UIApplicationLaunchOptionsBluetoothPeripheralsKey; NSString *const UIApplicationLaunchOptionsRemoteVoIPKey; NSString *const UIApplicationLaunchOptionsUserActivityDictionaryKey; NSString *const UIApplicationLaunchOptionsUserActivityTypeKey;
Константы
-
UIApplicationLaunchOptionsURLKey
Присутствие этого ключа указывает, что приложение было запущено для открытия URL. Значение этого ключа
NSURL
объект, содержащий URL для открытия.Этот ключ также используется для доступа к тому же значению в
userInfo
словарь уведомления называютUIApplicationDidFinishLaunchingNotification
.Доступный в iOS 3.0 и позже.
-
UIApplicationLaunchOptionsSourceApplicationKey
Присутствие этого ключа идентифицирует приложение, запросившее запуск Вашего приложения. Значение этого ключа
NSString
объект, представляющий пакет ID приложения, выполнившего запрос.Этот ключ также используется для доступа к тому же значению в
userInfo
словарь уведомления называютUIApplicationDidFinishLaunchingNotification
.Доступный в iOS 3.0 и позже.
-
UIApplicationLaunchOptionsRemoteNotificationKey
Присутствие этого ключа указывает, что удаленное уведомление доступно для приложения для обработки. Значение этого ключа
NSDictionary
содержа полезную нагрузку удаленного уведомления. См. описаниеapplication:didReceiveRemoteNotification:
для получения дополнительной информации об обработке удаленных уведомлений.Этот ключ также используется для доступа к тому же значению в
userInfo
словарь уведомления называютUIApplicationDidFinishLaunchingNotification
.Доступный в iOS 3.0 и позже.
-
UIApplicationLaunchOptionsAnnotationKey
Присутствие этого ключа указывает, что пользовательские данные были предоставлены приложением, запросившим открытие URL. Значение этого ключа является объектом списка свойств, содержащим пользовательские данные. Тот же объект также передается параметру аннотации
application:openURL:sourceApplication:annotation:
метод. Содержание этого объекта списка свойств является определенным для приложения, выполнившего запрос.Доступный в iOS 3.2 и позже.
-
UIApplicationLaunchOptionsLocalNotificationKey
Присутствие этого ключа указывает, что локальное уведомление доступно для приложения для обработки. Значение этого ключа
UILocalNotification
инициированный объект. Для получения дополнительной информации об обработке локальных уведомлений посмотритеapplication:didReceiveLocalNotification:
метод.Этот ключ также используется для доступа к тому же значению в
userInfo
словарь уведомления называютUIApplicationDidFinishLaunchingNotification
.Доступный в iOS 4.0 и позже.
-
UIApplicationLaunchOptionsLocationKey
Присутствие этого ключа указывает, что приложение было запущено в ответ на входящее событие расположения. Значение этого ключа
NSNumber
объект, содержащий булево значение. Необходимо использовать присутствие этого ключа как сигнал создать aCLLocationManager
возразите и запустите службы определения местоположения снова. Данные расположения поставлены только менеджеру расположения делегата и не использующий этот ключ.Доступный в iOS 4.0 и позже.
-
UIApplicationLaunchOptionsNewsstandDownloadsKey
Присутствие этого ключа указывает, что недавно загруженные активы Киоска доступны для Вашего приложения. Значение этого ключа является массивом идентификаторов строки, идентифицирующих
NKAssetDownload
объекты, соответствующие активам. Несмотря на то, что можно использовать идентификаторы для перепроверки целей, необходимо получить категорический массивNKAssetDownload
объекты (представляющий актив загружает происходящий или по ошибке), черезdownloadingAssets
свойствоNKLibrary
объект, представляющий библиотеку приложения Киоска.Доступный в iOS 5.0 и позже.
-
UIApplicationLaunchOptionsBluetoothCentralsKey
Присутствие этого ключа указывает, что приложение ранее имело один или больше
CBCentralManager
объекты и были повторно запущены системой Bluetooth для продолжения действий, связанных с теми объектами. Значение этого ключаNSArray
объект, содержащий один или большеNSString
объекты.Каждая строка в массиве представляет идентификатор восстановления для центрального объекта менеджера. Это - та же строка, которую Вы присвоили
CBCentralManagerOptionRestoreIdentifierKey
ключ, когда Вы инициализировали центральный объект менеджера ранее. Система предоставляет идентификаторы восстановления только центральным менеджерам, имевшим активные или незаконченные периферийные соединения или сканировавшим для периферийных устройств.Доступный в iOS 7.0 и позже.
-
UIApplicationLaunchOptionsBluetoothPeripheralsKey
Присутствие этого ключа указывает, что приложение ранее имело один или больше
CBPeripheralManager
объекты и были повторно запущены системой Bluetooth для продолжения действий, связанных с теми объектами. Значение этого ключаNSArray
объект, содержащий один или большеNSString
объекты.Каждая строка в массиве представляет идентификатор восстановления для периферийного объекта менеджера. Это - та же строка, которую Вы присвоили
CBPeripheralManagerOptionRestoreIdentifierKey
ключ, когда Вы инициализировали периферийный объект менеджера ранее. Система предоставляет идентификаторы восстановления только периферийным менеджерам, опубликовавшим или распространившим службы.Доступный в iOS 7.0 и позже.
-
UIApplicationLaunchOptionsUserActivityDictionaryKey
Присутствие этого ключа указывает, что приложение было запущено для продолжения пользовательского действия. Значение этого ключа
NSDictionary
объект, содержащий ключUIApplicationLaunchOptionsUserActivityTypeKey
, чье значениеNSString
объект, идентифицирующий тип действия.Доступный в iOS 8.0 и позже.
-
UIApplicationLaunchOptionsUserActivityTypeKey
Этот ключ используется в подсловаре, который является значением
UIApplicationLaunchOptionsUserActivityDictionaryKey
. Значение этого ключаNSString
объект, идентифицирующий тип действия.Доступный в iOS 8.0 и позже.
-