斯威夫特单身人士

Ale*_*ith 2 singleton ios swift

我目前正在开发使用他们的移动购买sdk的Shopify应用程序,我正在尝试使用Swift中的Singleton来保存购物车.我有一个像这样设置的Singleton类:

class Singleton {

   static let sharedInstance = Singleton()

   init() {
     var cart = BUYCart()
     println(cart)
   }
}
Run Code Online (Sandbox Code Playgroud)

初始化后,它会在控制台中打印BUYCart.问题是我试图在控制器中访问保存的购物车,如下所示:

  println(Singleton.sharedInstance.cart.lineItems)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

 Singleton does not have member named 'cart'
Run Code Online (Sandbox Code Playgroud)

Ray*_*ond 9

您应该在实例级别声明变量.在您的代码中,它在构造函数中声明,因此您只能在构造函数中访问它.不是像你在代码中那样在课外.

class Singleton {

   static let sharedInstance = Singleton()
   var cart = BUYCart()

   init() {
     println(cart)
   }
}
Run Code Online (Sandbox Code Playgroud)


Aar*_*sen 9

这不一定是对你的问题的直接回应,所以请放弃.但是如果你想让它成为一个单例,那么创建init方法private以便你真的可以真正地创建它的一个实例:

class Singleton {

    static let sharedInstance = Singleton()
    var cart = BUYCart()

    private init() {
        println(cart)
    }
}
Run Code Online (Sandbox Code Playgroud)