在 IOS 中的应用程序之间共享数据
Sharing data in between apps in IOS
我的任务是在同一设备的应用程序之间共享数据。可能这两个应用程序都可以在同一设备上使用共享数据库。如何在 IOS 中的两个应用程序之间共享数据。任何人都以任何方式做到了。
请告诉我。谢谢
您可以在具有相同组容器 ID 的两个应用的应用项目功能选项卡上启用应用组。 "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 == true
}
@IBAction func switched(_ sender: UISwitch) {
let success = NSKeyedArchiver.archiveRootObject(sender.isOn, toFile: switchURL.path)
print(success)
}
}
我的任务是在同一设备的应用程序之间共享数据。可能这两个应用程序都可以在同一设备上使用共享数据库。如何在 IOS 中的两个应用程序之间共享数据。任何人都以任何方式做到了。 请告诉我。谢谢
您可以在具有相同组容器 ID 的两个应用的应用项目功能选项卡上启用应用组。 "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 == true
}
@IBAction func switched(_ sender: UISwitch) {
let success = NSKeyedArchiver.archiveRootObject(sender.isOn, toFile: switchURL.path)
print(success)
}
}