Swift-day9---属性

2018-05-05  本文已影响18人  Cooci_和谐学习_不急不躁

Swift专栏---属性.这一篇简单给大家介绍一下属性.!!!喜欢的小伙伴,可以关注我.

/**
 存储属性就是存储在特定类、结构体里的一个常量或者变量。
 可以在定义存储属性的时候指定默认值。
 可以在构造过程中设置或者修改存储属性的值
 */

class Person{
    //储存属性
    var name: String?
    var age: Int?
}

struct Model{
     //储存属性
    var p: Person?
    var index: Int
}

let p = Person()
p.name = "Cooci"
p.age = 18
let model:Model = Model(p: p, index: 1)

//开发中经常在加载属性利用懒加载 尤其在UI

 //lazy var 变量 : 类型 = {创建变量代码}()
class MyView:UIView{
    lazy var label = UILabel()
    lazy var tableView:UITableView = { () -> UITableView in
        let tb = UITableView(frame: CGRect(x: 0, y: 0, width: 300, height: 300), style: .plain)
//        tb.delegate = self;
//        tb.dataSource = self;
        return tb
    }()
}
class NewClass{
    var firstName = "伊丽莎白"
    var lastName = "Cooci"
    var fullName: String{
        get{
            return firstName+lastName
        }
    }
}

print(NewClass().fullName)

//还可以定义set方法
class Student{
    var book = "iOS"
    var changeBook:String{
        get{
            return book
        }
        set(newBook){
            book = newBook
        }
    }
}
let s = Student()
print(s.changeBook)
s.changeBook = "Swift"
print(s.changeBook)

//计算型属性能够帮助结构体修改属性
struct Animal{
    var kind = ""
    var age = 0
    //如果要用方法修改结构提属性 需要使用mutating
    mutating func changeAnimalKind(newKind:String){
        self.kind = newKind
    }
    
    //上面的方法等同下面的计算型属性:说明计算型属性是对方法的封装
    var changeKind:String{
        get{
            return self.kind
        }
        set(newKind){
            self.kind = newKind
        }
    }
}
var ani = Animal(kind: "哺乳动物", age: 3)
print(ani.kind)
ani.changeAnimalKind(newKind: "两栖动物")
print(ani.kind)
ani.changeKind = "鱼类"
print(ani.changeKind)
class example{
    var age : Int = 10{
        //即将赋值了就会来到这里
        willSet{
            print("example方法 要修改 age了 newValue \(newValue)")
        }
        //赋值完毕了就来这里
        didSet{
            print("example方法 赋值完毕 oldvalue == \(oldValue)")
        }
    }
}

let ex = example()
print(ex.age)
ex.age = 20
print(ex.age)

Swift-day1---HelloWord
Swift-day2---基本数据类型
Swift-day3---字符串
Swift-day4---闭包(Closures)
Swift-day5---集合类型--数组,集合,字典
Swift-day6---函数
Swift-day7---类
Swift-day8---结构体,枚举

持续更新!!!如有什么不足,还请不吝指出!谢谢!

上一篇下一篇

猜你喜欢

热点阅读