gpt4 book ai didi

ios - 在 iOS/Swift 中处理从外部资源打开的文件

转载 作者:搜寻专家 更新时间:2023-11-01 06:16:17 26 4
gpt4 key购买 nike

我在使用 Swift 对从外部源在 iOS 中打开的文件进行基本处理时遇到了问题。我正在尝试通过电子邮件从自定义文件类型(具有自定义扩展名的简单文本文件)导出/导入数据。我在导出文件并作为附件从应用程序内发送时没有问题。我还能够通过编辑 info.plist 文件将文件类型与我的应用程序相关联。但是,一旦我选择用我的应用程序打开它,我不知道如何/在哪里实现处理文件的功能。

经过一些搜索,我找到了这个教程: https://www.raywenderlich.com/1980/email-tutorial-for-ios-how-to-import-and-export-app-data-via-email-in-your-ios-app

但是,所有关于文件处理的说明都在 Objective C 中给出。

如有任何帮助,我们将不胜感激。

最佳答案

唯一重要的部分是这部分:

// Add at end of application:didFinishLaunchingWithOptions
NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
if (url != nil && [url isFileURL]) {
[rootController handleOpenURL:url];
}

// Add new method
-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url {

RootViewController *rootController = (RootViewController *) [navigationController.viewControllers objectAtIndex:0];
if (url != nil && [url isFileURL]) {
[rootController handleOpenURL:url];
}
return YES;

}

第一个代码块被添加到您的 AppDelegate 的 application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)

Swift 等价物是

if let options = launchOptions, let url = options[.url] as? URL, url.isFileURL {
// call some code to handle the URL
}

AppDelegate 的这个新功能:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if url.isFileURL {
// call some code to handle the URL
}
return true // if successful
}

文章中的所有其余代码都是一种将处理代码路由到 Root View Controller 的方法。您可以直接在 AppDelegate 中处理它,或者如果您愿意,可以将它路由到另一个类。

关于ios - 在 iOS/Swift 中处理从外部资源打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44285506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com