码迷,mamicode.com
首页 > 其他好文 > 详细

属性与方法

时间:2015-10-28 19:46:03      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

一 属性

  • 属性的存储

  • 延时存储属性

  • 计算属性

  • 属性观察者

  • 静态属性

注意:OC中的属性的替代get/set的方法,为了实现对成员变量的封装,实际上是swift中的计算属性。

1.存储

在swift中的属性存储就是OC中的一般意义上的成员变量,ps:swift中是没有成员变量的

实例化:
//结构体的属性初始化不用需要赋值
struct FixedRangeStruct{
    var firstValue:Int
    let length:Int
}
var rangeOfStruct = FixedRangeStruct(firstValue:0,length:4)
rangeOfStruct.firstValue = 12

//类的属性初始化需要赋值
class FixedRangeClass {
    var firstValue = 0
    let lenth = 0
}
var rangeOfClass = FixedRangeClass()
rangeOfClass.firstValue = 12

2.延时储存属性

类内部属性实例化的时候,使用lazy代表暂不实例化,等第一次使用的时候再实例化。这样的好处的,当类的属性是另一个类的时候,而且属性类极少使用的时候,可以防止一次性加载2个类的东西。

使用场景:属性使用类低,而且属性结构大,就可以使用lazy。如果是小属性,或者属性类十分频繁使用,那千万不要使用lazy

class DataImporter {
    var fileName = "data.txt"
}

class DataManager {
    lazy var importer = DataImporter()
    var data = ""
}

let manager = DataManager()
manager.data += "Some data"
print(manager.importer.fileName)

3

属性与方法

标签:

原文地址:http://my.oschina.net/u/2346786/blog/523244

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!