簡體   English   中英

應用程序和擴展程序之間共享的單例類

[英]singleton class shared between app and extension

當我將UIViewController引用或字符串 Id 之類的值添加到單例類,然后嘗試從共享擴展訪問它們時,我無法再次獲取此值共享擴展創建具有空值的新單例

我怎樣才能讓這個類和它里面的數據在主應用程序和擴展程序之間共享?

class Gateway:NSObject {

    private var id:String? = nil
    private weak var delegate:GatewayDelegate!

    func set(id:String){
        self.id = id
    }

    func set(gatewayDelegate:GatewayDelegate){
        self.delegate = gatewayDelegate
    }

    func dismiss() {
        self.id = nil
        self.delegate = nil
    }


    func append(str:String,_id:String) {

        if let id = self.id ,id == _id ,self.delegate != nil  {            
            self.delegate!.gatewayAppend(str: str)
        }
    }

    static let shared = Gateway()
    private override init() {}
}

擴展是一個完全獨立的過程。 它在自己的沙箱和自己的內存中運行。 您的主應用程序和擴展程序都可以創建單例對象的實例,但它們將是單獨的實例。 他們不會分享任何數據。

要在主應用程序和擴展程序之間交換數據,您需要使用具有用戶默認值、鑰匙串或文件的應用程序組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM