1.属性是 对象的一个特征
2.swift 没有全局变量 都是属性 如果只想在本类 使用 可以使用关键字private修饰
1.类型属性
class var 声明的变量 类似全局变量 但是不可赋值 使用类名 调用
class var 声明的变量 类似全局变量 但是不可赋值 使用类名 调用
类型属性的公式:
class var 变量名:数据类型 {return 值}
调用:类名.变量名
class var name: NSString {return "小明"}
调用:
print(BB_ImageLabelView.name)
2.观察属性:
观察给属性赋值的状态 是用来监测赋值的状态
属性中 可设置 willSet didSet 来观察 属性的设置
需要注意的是:该属性 优肯被赋值成nil ,所以系统提示 需要init ->声明成可选类型?
swift 中 不存在 给一个临时的全局变量 赋值 所以 不可以使用 _age = 20 要使用 self.age = 20
公式:
var 变量名:数据类型?{
willSet{
注意:Set首字母大写
}
didSet{
检测属性赋值的状态
}
}
var age:Int?{
willSet{
print("将要赋值\(age)")
}
didSet{
print("已经赋值\(age)")
}
}
let imageLabel = BB_ImageLabelView.init(frame: CGRectZero, image: UIImage.init(named:"听")!, title: "...")
imageLabel.age = 20
3.实例属性
都是使用对象调用的
在类中声明 var 变量名:数据类型?
var titleLabel:UILabel?//实例属性
懒加载 懒惰属性 lazy 在使用的时候 才去创建
懒加载 在创建属性的时候 同时赋值
公式:
lazy var 变量名:数据类型 = 值
lazy var list1:NSArray = ["1","2"]
lazy var list:NSArray = NSArray()
计算属性 重写set get
公式:
var 变量名:类型{
get{
自由发挥
return xx
}
set{
自由发挥
}
OC的set方法
-(void)setName:(NSString *)name{
_name = name;
_name = [NSString stringWithFormat:@"",name];
self.view.backgroundColor = [UIColor redColor];
get方法:
-(NSString *)name{
NSLog(@"....00");
var mmm:Int{
get{
return 1
}
set{
}
}
我了解的只有这些:如果你们有其他的,希望一起分享。