如何在iOS上的共享应用程序组中保存文件并从中读取[重复]

Posted

技术标签:

【中文标题】如何在iOS上的共享应用程序组中保存文件并从中读取[重复]【英文标题】:How to save file in shared app group on iOS and read from it [duplicate] 【发布时间】:2017-04-28 11:46:56 【问题描述】:

我正在将我的主应用程序中的数据保存在一个文件中,该文件存储在 userDomainMask 的某个位置。

NSKeyedArchiver.archiveRootObject(stops, toFile: BusStop.ArchiveURL.path)

这是在我的 BusStop 类文件中

static let DocumentsDirectory = FileManager().urls(for: .documentDirectory, in: .userDomainMask).first!
static let ArchiveURL = DocumentsDirectory.appendingPathComponent("stops")

现在我想从我的 Today Extension 及其返回的空集 [] 中读取这些数据,所以我知道问题出在哪里。我需要将此数据保存在我的扩展程序和应用程序都属于的共享应用程序组中。

如何保存数据并从中读取?

我想保存我的 BusStop 类的实例数组。

编辑:

我解决了我的问题!

使用这个解决方案:

static let ArchiveURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.asd.asd.asd")!
    .appendingPathComponent("mypath")

每次您对已保存的数据进行一些操作或保存新内容时,请使用此解决方案:

https://***.com/a/37162883/3595696

干杯!

【问题讨论】:

您是否将文件存储在文档目录中? @KKRocks 是的,它有静态 let DocumentsDirectory = FileManager().urls(for: .documentDirectory, in: .userDomainMask).first! 你为什么使用archiveRootObject? @KKRocks 此代码来自苹果教程 在 saveMeals() 方法中,添加以下代码行:developer.apple.com/library/content/referencelibrary/… 【参考方案1】:

在 Apple Developer Center 中设置 App Group 并启用授权 (here is how)。

然后获取 App Groups URL:

guard let groupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: applicationGroupId) else 
    fatalError("could not get shared app group directory.")

并用它来存储常用文件。

【讨论】:

如何实现? 什么意思?将您想要分享的所有内容保存到groupURL。您缺少哪个实现部分?

以上是关于如何在iOS上的共享应用程序组中保存文件并从中读取[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS 项目中放置 .txt 文件并从中读取的位置

如何启用 Intent 选择 Google Docs 文件(保存在 Google Drive 上)?

PHP 无法从 NFS 共享读取会话

我们如何以编程方式读取、解析 autocad .dwg 文件并从中提取信息?

退出并加载我的应用程序时,如何将图像保存并读取到临时文件夹

如何从 Flutter 中的 URL 下载文件并将其保存在 iOS 共享文件夹中?