什么时候可以删除convertToUIApplicationOpenExternalURLOptionsKeyDictionary辅助函数?

时间:2019-02-01 17:49:27

标签: ios swift

去年我迁移到 Swift 4.2 时,Swift 4.2迁移器在我的某些控制器中添加了一个辅助函数:

// Helper function inserted by Swift 4.2 migrator.
fileprivate func convertToUIApplicationOpenExternalURLOptionsKeyDictionary(_ input: [String: Any]) -> [UIApplication.OpenExternalURLOptionsKey: Any] {
    return Dictionary(uniqueKeysWithValues: input.map { key, value in (UIApplication.OpenExternalURLOptionsKey(rawValue: key), value)})
}

什么时候可以安全移除?

1 个答案:

答案 0 :(得分:3)

大概,该文件(或文件的先前版本)中的某些函数调用此UIApplication方法:

func open(_ url: URL, options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], completionHandler completion: ((Bool) -> Void)? = nil)

在iOS 12之前,该方法具有不同的签名:

func open(_ url: URL, options: [String : Any] = [:], completionHandler completion: ((Bool) -> Void)? = nil)

Xcode 10迁移项目时,它添加了convertToUIApplicationOpenExternalURLOptionsKeyDictionary函数,并在每次对open(_:options:completionHandler:)方法的调用中插入了对该函数的调用,以翻译选项字典。

如果将对open(_:options:completionHandler:)方法的每次调用更新为使用UIApplication.OpenExternalURLOptionsKey常量,则可以删除对convertToUIApplicationOpenExternalURLOptionsKeyDictionary的调用并完全删除函数。