Я использовал этот метод в своем файле AppDelegate для обработки открытия приложения с моей схемой URL

func application(_ application: UIApplication, open url: URL, 
                 sourceApplication: String?, annotation: Any) -> Bool {}

Позже я добавил другой метод (требуется iOS 9.0)

func application(_ application: UIApplication, open url: URL,
                 options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {} 

Теперь я вижу, что второй метод обрабатывает все запуски приложений.

  1. В чем разница между этими методами?
  2. Должен ли я просто заполнить их той же логикой, чтобы мой первый метод выполнялся только на устройствах iOS 8.
  3. Могу ли я удалить свой первый метод, если меня не интересует поддержка iOS 8
0
moonvader 13 Мар 2018 в 13:13

2 ответа

Лучший ответ

Первый метод имеет поддержку от iOS 4.0 до iOS 9.0. Сейчас он устарел. И начиная с версии 9.0 iOS предоставляет новый метод для openURL, который является вашим вторым методом.

Назначение обоих методов одинаково. поэтому, если вы хотите поддержать iOS 8, оставьте оба метода, иначе удалите метод Deprecated.

Вы можете увидеть это в структуре UIKit -> UIApplication.h (проверьте изображение ниже)

enter image description here

1
Shreyank 13 Мар 2018 в 10:41

Да, почему бы и нет ... вы можете удалить ios 8, поддерживающий метод открытого URL-адреса, и обновить его до метода открытого URL-адреса ios 9 ...

0
Harshad Patel 13 Мар 2018 в 10:20