У меня есть задача обмениваться данными между приложениями на одном устройстве. Возможно, оба приложения могут использовать общую базу данных на одном устройстве. Как делиться данными между двумя приложениями в IOS. Кто-нибудь это сделал. Пожалуйста, дайте мне знать. Благодаря
Обмен данными между приложениями в IOS
Ответ 1
Вы можете включить группу приложений на вкладке "Возможности проекта" в обоих приложениях с тем же идентификатором контейнера группы. "group.com.yourCompanyID.sharedDefaults"
Затем вы можете получить доступ к той же папке из своих приложений, используя следующий URL:
let sharedContainerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.yourCompanyID.sharedDefaults")!
Итак, если вы хотите поделиться состоянием переключателя с двумя различными приложениями, вы должны сделать это следующим образом:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var sharedSwitch: UISwitch!
let switchURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.yourCompanyID.sharedDefaults")!
.appendingPathComponent("switchState.plist")
override func viewDidLoad() {
super.viewDidLoad()
print(switchURL.path)
NotificationCenter.default.addObserver(self, selector: #selector(updateSwitch), name: .UIApplicationDidBecomeActive, object: nil)
}
func updateSwitch(_ notofication: Notification) {
sharedSwitch.isOn = NSKeyedUnarchiver.unarchiveObject(withFile: switchURL.path) as? Bool ?? false
}
@IBAction func switched(_ switch: UISwitch) {
let success = NSKeyedArchiver.archiveRootObject(switch.isOn, toFile: switchURL.path)
print(success)
}
}