2015-09-18 50 views
11

Tôi có nhiệm vụ chia sẻ dữ liệu giữa các ứng dụng trong cùng một thiết bị. Có thể cả hai ứng dụng đều có thể sử dụng cơ sở dữ liệu được chia sẻ trên cùng một thiết bị. Cách chia sẻ Dữ liệu giữa hai ứng dụng trong IOS. Bất cứ ai đã làm nó theo bất kỳ cách nào. Vui lòng cho tôi biết. Cảm ơnChia sẻ dữ liệu giữa các ứng dụng trong IOS

+0

Kiểm tra [liên kết này] (http://www.enharmonichq.com/sharing-data-locally-between-ios-apps/). Nó dựa trên Objective-C nhưng khái niệm tương tự vẫn được áp dụng. –

+0

@ Phoen1xUK Tôi nghĩ rằng bài viết đã lỗi thời, kể từ iOS 8, nhóm ứng dụng là cách chính thức để làm điều đó. – neuhaus

+0

Tôi đang nói về các nhóm Ứng dụng. bạn đã thực hiện điều này chưa? – Abhishek

Trả lời

23

Bạn có thể bật nhóm Ứng dụng trên tab khả năng của ứng dụng Project trên cả hai ứng dụng của bạn với cùng một ID vùng chứa. "Group.com.yourCompanyID.sharedDefaults"

enter image description here

Sau đó, bạn có thể truy cập vào cùng một thư mục từ các ứng dụng của bạn sử dụng url sau:

let sharedContainerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.yourCompanyID.sharedDefaults")! 

Vì vậy, nếu bạn muốn chia sẻ một trạng thái chuyển đổi từ hai ứng dụng khác nhau, bạn nên thực hiện như sau:

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) 
    } 
} 
Các vấn đề liên quan