去年我迁移到 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)})
}
什么时候可以安全移除?
答案 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
的调用并完全删除函数。