Метод экземпляра 'application (application: handleOpenURL :)' почти соответствует необязательному требованию - PullRequest
0 голосов
/ 16 марта 2020

Я получаю предупреждение для метода ниже,

func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {

    print("URL openning: \(String(describing: url.absoluteString))")
    os_log("URL openning:: %{public}s", url.absoluteString!)

    return true
}

Предупреждение:

Применение метода экземпляра 'application (application: handleOpenURL :)' почти соответствует приложению необязательного требования '(_ : handleOpen :) 'протокола' UIApplicationDelegate '

Предложение:

Сделать приложение (application: handleOpenURL :)' приватным, чтобы отключить это предупреждение

Однако я сомневаюсь, что эта функция должна быть закрытой или нет, потому что она будет вызвана iOS fw при срабатывании обратного вызова oAuth.

Почему iOS предлагает быть личным?

1 Ответ

2 голосов
/ 16 марта 2020

Вы реализуете функцию из UIApplicationDelegate, и вы неправильно написали сигнатуру функции, что делает вашу функцию очень похожей на сигнатуру из протокола, но не совсем - именно поэтому компилятор жалуется.

Вы пропускаете параметр подчеркивания _ - application не имеет метки при вызове функции:

optional func application(_ application: UIApplication, handleOpen url: URL) -> Bool

Во-вторых, вы не должны использовать эту функцию в любом случае, так как она устарела в iOS 10. Используйте

optional func application(_ app: UIApplication, 
                       open url: URL, 
                        options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

вместо

...