복붙노트

[SWIFT] IOS에서 응용 프로그램 사이에서 데이터를 공유

SWIFT

IOS에서 응용 프로그램 사이에서 데이터를 공유

해결법


  1. 1.동일한 그룹 컨테이너 ID와 앱에 모두 당신의 앱 프로젝트 기능 탭에서 응용 프로그램 그룹을 설정할 수 있습니다. "group.com.yourCompanyID.sharedDefaults"

    동일한 그룹 컨테이너 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)
        }
    }
    
  2. from https://stackoverflow.com/questions/32652795/sharing-data-in-between-apps-in-ios by cc-by-sa and MIT license