1.类的继承
class Animal { func breathe(){ //... } } class Cat: Animal{ var hasHair = true } let cat = Cat() cat.breathe() cat.hasHai class SmallCat: Cat{ func eat(){ //... } } let smallCat = SmallCat() smallCat.breathe() smallCat.hasHair smallCat.eat()
2.方法的重写
class Animal { func breathe(){ //breathe } } class Fish: Animal{ override func breathe() { super.breathe() //调用父类的breathe方法 //override breathe } }
3.构造器:创建对象;给对象进行初始化
class Car{ var color: String var seats: Int init(color: String, seats: Int){ self.color = color self.seats = seats } } let car = Car(color: "break", seats: 5) //有初始值/默认值 class Car2{ var color = "red" var seats = 4 init(color: String, seats: Int){ self.color = color self.seats = seats } } let car2 = Car2(color: "break", seats: 5)
4.枚举类型
enum Color { case red case green case blue } let colorType = Color.green let colorType2: Color = .red //简写
5.枚举的原始值
enum ColorType2: String{ case red = "veryRed" case green = "veryGreen" case blue = "veryBlue" } ColorType2(rawValue: "veryRed") enum ColorType3: Int{ case a = 0 case b case c } //b,c原始值自动递增1 ColorType3.c.rawValue
6.枚举的简写
//简写 enum ColorType4{ case red, green, blue } enum ColorType5: Int{ case a = 1, b, c } //如果Int类型的枚举全部没有赋初始值,则默认a为0
7.可选类型
var name: Optional<String> = Optional("Lili") //简写 var name: String? = Optional("Lili")
//简简写 var name: String? = "Lili"
8.强制解包
//"Lili" var name: String? = "Lili" print(name) //Optional("Lili") print(name!) //"Lili" //nil var name: String? = nil print(name) //nil print(name!) //系统崩溃,报错Unexpectedly found nil while unwrapping an Optional value(展开可选值时意外发现nil) //所以需要对可选类型进行判断非空后再进行强制解包。
9.可选绑定
//iflet. 此处的name为nil时跳过这三行代码直接执行下面的。如果name不是nil则将name的值赋给unKnowName,然后可以使用unKnowName。 if let unKnowName = name{ print(unKnowNmae) }
//guard:门卫。对可选类型进行拦截。如果name为nil,就进入到else中,再return。如果有值就赋给unKnowName,在else外进行使用。 guard let unKnowName = name else { return 值 } //如果遇到当name为空时就需要直接跳出方法体的情况,用guard比较好。可以直接return出来,并返回需要的东西。
10.隐式可选类型
//隐式可选类型:可以确定在第一次使用他的时候他肯定有值。所以直接定义的时候就加上感叹号,系统会对他进行自动解包。 @IBOutlet weak var questionLabel: UILabel! questionLabel.text = queastions[0].text
11.可选类型自动赋值
//只有可选类型是一个变量,且没有给他赋初始值的时候,系统才会自动给他赋初始值nil。当非可选类型或者常量没有赋初始值,系统不会自动赋初始值。 var name: String? //name = nil let name: String? //可选类型常量没有赋初始值,系统会报错。
标签:case,name,color,iOS,解包,var,seats,类型,String From: https://www.cnblogs.com/lysboke/p/17672703.html