
import Foundations class Global { struct Info { var firstname:String! var lastname:String! var status:String! init (firstname:String,lastname:String,status:String) { self.firstname=firstname self.lastname=lastname self.status=status } } var testString: String="Test" //for deBUGging var member:[Info]=[] class var SharedGlobal:Global { struct Static {static let instance = Global()} return Static.instance } } 现在我想从一些vIEwControllers访问这个singleton类的全局变量.当我在xcode中输入时:
Global.SharedGlobal.
我有两个选项,一个是数组成员,另一个是testString.结构信息不可用.但是,如果我只是输入
Global.
然后我看到Global.Info和Global.SharedGlobal作为我的选择.
为什么我无法访问我的单例类中的结构(即Global.SharedGlobal.Info)?我错过了什么?我感谢任何反馈或帮助.非常感谢提前.
除非有一个非常具体的理由,否则你不需要像这样嵌套类.让我们简化一下练习的代码:
struct Info { // No need for these propertIEs to be Implicitly Unwrapped Optionals since you initialize all of them var firstname: String var lastname: String var status: String init (firstname:String,status:String) { self.firstname=firstname self.lastname=lastname self.status=status }}class Global { // Now Global.sharedGlobal is your singleton,no need to use nested or other classes static let sharedGlobal = Global() var testString: String="Test" //for deBUGging var member:[Info] = []}// Use the singleton like thislet singleton = Global.sharedGlobal// Let's create an instance of the info structlet infoJane = Info(firstname: "Jane",lastname: "Doe",status: "some status")// Add the struct instance to your array in the singletonsingleton.member.append(infoJane) 现在对我来说是有道理的.一个结构,包含一些用户的信息,我可以创建它们的任何数字实例 – 和一个单独的类,唯一的,我可以存储这些信息实例,这个单例可以在任何地方使用.
这是你想要达到的目标吗?
总结以上是内存溢出为你收集整理的如何在swift 2.0(iOS)中的单例类中创建可全局访问的结构数据?全部内容,希望文章能够帮你解决如何在swift 2.0(iOS)中的单例类中创建可全局访问的结构数据?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)