Swift之学习属性

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{
            
        }
    }

我了解的只有这些:如果你们有其他的,希望一起分享。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容