如何在swift 2.0(iOS)中的单例类中创建可全局访问的结构数据?
发布时间:2020-12-14 05:48:03 所属栏目:百科 来源:网络整理
导读:我是iOS编程和swift的新手.我正在尝试创建一个单例类来存储我的全局数据.我的全局数据是结构和此结构的数组.我想只有一个这个类的实例,因此是一个单例类.全局数据应该可供所有ViewControllers访问和编辑.我一直在寻找,除了最后一部分,我几乎已经弄明白了.这
我是iOS编程和swift的新手.我正在尝试创建一个单例类来存储我的全局数据.我的全局数据是结构和此结构的数组.我想只有一个这个类的实例,因此是一个单例类.全局数据应该可供所有ViewControllers访问和编辑.我一直在寻找,除了最后一部分,我几乎已经弄明白了.这是单例类:
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 this let singleton = Global.sharedGlobal // Let's create an instance of the info struct let infoJane = Info(firstname: "Jane",lastname: "Doe",status: "some status") // Add the struct instance to your array in the singleton singleton.member.append(infoJane) 现在对我来说是有道理的.一个结构,包含一些用户的信息,我可以创建它们的任何数字实例 – 和一个单独的类,唯一的,我可以存储这些信息实例,这个单例可以在任何地方使用. 这是你想要达到的目标吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 实体框架SQL查询不返回结果
- swift 报错 Call can throw, but it is not marked with &#
- cocostudio 生成的ui用在 cocos2d js
- 端口8081在“react-native run-ios”中已经在使用
- Oracle出现maxnum processes 达到最大连接数
- React 面向组件化编程
- Xcode Interface Builder – 标尺/对象指南
- 深入学习C语言中的函数指针和左右法则
- react native 学习笔记 2016_1223 (环境,箭头函数,state
- Proactor和Reactor模式_继续并发系统设计的扫盲