When/What/Why/How 在应用程序中使用 launchOptions 的 UIApplicationOptionsURLKey 值(application:willFinishLaunchingWithOptions:)?

When/What/Why/How to use value of UIApplicationOptionsURLKey from launchOptions in application(application:willFinishLaunchingWithOptions:)?

背景

刚开始学习Apple的API,现在正在学习UIApplicationDelegate的功能。 更具体地说,我正在剖析 func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool.


问题

可以在 launchOptions 中找到的一个密钥是 UIApplicationLaunchOptionsURLKey这个密钥什么时候存在?

对应key,有一定的值。 这个值是什么?

我得到这个键值对是有原因的。 我为什么要用它?

最后,也是最重要的:我如何使用它?


附加信息

据我了解,我正在制作样板项目。 这是里面的内容:

func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool
    {
        print("application(application:willFinishLaunchingWithOptions:)")

        if let options: [NSObject: AnyObject] = launchOptions
        {
            for option: (key: NSObject, AnyObject) in options
            {
                switch option.key
                {
                // The presence of this key indicates that the app was launched in order to open a URL. The value of this key is an NSURL object containing the URL to open.
                case UIApplicationLaunchOptionsURLKey:
                    <#code#>
                ...

对于未来的项目,我计划用其他东西替换 <#code#> 以利用 UIApplicationLaunchOptionsURLKey.

键值对的功能

可能还有其他原因,但我用它来打开我的应用程序的特定文件。

我的应用程序以自己的格式保存备份文件。如果用户的设备中有这些文件之一,他可以选择使用我的应用程序打开该文件。如果他那样做,我的应用程序就会打开并发生这种情况:

func application(application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        if let url = launchOptions?[UIApplicationLaunchOptionsURLKey] as? NSURL {
            handleBackupFile(url)
        }
        return true
}

除了正常启动应用程序外,我调用 handleBackupFile() 来处理备份文件。

如果我的应用程序可以打开不止一种文件,我可能会检查其中的文件类型。

编辑:

这是我的应用程序 Leio 中的一个实际示例:

当用户点击 "Copy to Leio" 我的应用程序打开并调用该代码。