Swift中延迟属性@lazy
延迟存储属性是指当第一次被调用的时候才会计算其初始值的属性。在属性声明前使用
注意: 必须将延迟存储属性声明成变量(使用 延迟属性很有用,当属性的值依赖于在实例的构造过程结束前无法知道具体值的外部因素时,或者当属性的值需要复杂或大量计算时,可以只在需要的时候来计算它。 下面的例子使用了延迟存储属性来避免复杂类的不必要的初始化。例子中定义了 class DataImporter { /* DataImporter 是一个将外部文件中的数据导入的类。 这个类的初始化会消耗不少时间。 */ var fileName = "data.txt" // 这是提供数据导入功能 } class DataManager { @lazy var importer = DataImporter() var data = String[]() // 这是提供数据管理功能 } let manager = DataManager() manager.data += "Some data" manager.data += "Some more data" // DataImporter 实例的 importer 属性还没有被创建 DataManager的一个功能是从文件导入数据,该功能由 DataManager也可能不从文件中导入数据。所以当 由于使用了 println(manager.importer.fileName) // DataImporter 实例的 importer 属性现在被创建了 // 输出 "data.txt” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |