Как сохранить файл в группе общих приложений на 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")

и каждый раз, когда вы выполняете какую-либо операцию с уже сохраненными данными или сохраняете новый контент, используйте это решение:

/questions/8313453/nevozmozhno-dekodirovat-obekt-klassa-employee-dlya-klyucha-nsobject0-klass-mozhet-byit-opredelen-v-ishodnom-kode-ili-biblioteke-kotoraya-ne-svyazana/8313460#8313460

Ура!

1 ответ

Настройте группу приложений в Apple Developer Center и активируйте права ( вот как).

Затем получите URL-адрес группы приложений:

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

и использовать его для хранения общих файлов в.

Другие вопросы по тегам