Как сохранить файл в группе общих приложений на iOS и прочитать из него
Я сохраняю свои данные из основного приложения в файл, который хранится где-то в 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 и его возвращаемого пустого набора [], поэтому я знаю, в чем проблема. Мне нужно сохранить эти данные в общей группе приложений, к которой принадлежат как расширение, так и приложение.
Как сохранить данные и прочитать из них?
Я хочу сохранить массив экземпляров моего класса BusStop.
РЕДАКТИРОВАТЬ:
Я исправил свою проблему!
Используйте это решение:
static let ArchiveURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.asd.asd.asd")!
.appendingPathComponent("mypath")
и каждый раз, когда вы выполняете какую-либо операцию с уже сохраненными данными или сохраняете новый контент, используйте это решение:
Ура!
1 ответ
Настройте группу приложений в Apple Developer Center и активируйте права ( вот как).
Затем получите URL-адрес группы приложений:
guard let groupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: applicationGroupId) else {
fatalError("could not get shared app group directory.")
}
и использовать его для хранения общих файлов в.