美文网首页
Swift-day9---属性

Swift-day9---属性

作者: Cooci_和谐学习_不急不躁 | 来源:发表于2018-05-05 13:44 被阅读18次

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
    }()
}
  • 计算型属性:不直接储存值,而是通过提供一个getter方法来获取值,然后用一个可选项的setter来间接设置其他的属性或者变量的值
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)
  • 类型属性 ; 代表类的特性 通常用static修饰

    class CarClass{
        static var whole = 4
    }
    //类型属性不需要实例变量  直接通过类调用
    print(CarClass.whole)
    

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

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

相关文章

  • Swift-day9---属性

    Swift专栏---属性.这一篇简单给大家介绍一下属性.!!!喜欢的小伙伴,可以关注我. 存储属性就是存储在特定类...

  • 成员属性、静态属性、私有属性、原型属性

    一、成员属性和成员方法在构造函数中,通过this.属性声明,或者实例化出对象后,通过“对象.属性”追加的,都属于成...

  • swift 属性(存储属性、计算属性、懒加载属性、类型属性)

    存储属性 存储属性:用于存储一个常量或变量 结构体实例赋值给常量,该实例属性不能被修改(因为结构体属于值类型,当值...

  • jQuery属性操作

    attr(属性名,属性值)操作所有属性 removeAttr(属性名) prop(属性名,属性...

  • 依赖属性|简单属性|附加属性

    依赖属性 简单理解就是属性,支持继承,比如 Window 有 Font 属性,Button 也有 Font 属性,...

  • attribpromote

    属性创建。 属性名称,属性类别,默认属性,输出属性。 属性转移,atteibutrename. 在点属性上,现有属...

  • 网站基本情况记录

    各类属性: 样例: //辅助属性:属性//可确定同表的属性:属性//其他相关属性:属性 乐器相关属性 乐器id乐器...

  • 人生三属性

    人生三属性:可分为善良属性,激情属性,愚昧属性; 三属性又分为个性三属性、时间三属性、食物三属性。...

  • 03-第三章 函数、自定义属性、事件

    一、 变量与属性的区别 属性分节点属性 和js属性节点属性 :元素自带属性js属性:js中自定义的属性 当js属性...

  • Swift--属性与下标

    存储属性 计算属性 属性观察者 静态属性 使用下标 存储属性 存储属性概念 存储属性可以存储数据,分为常量属性(用...

网友评论

      本文标题:Swift-day9---属性

      本文链接:https://www.haomeiwen.com/subject/xwnsrftx.html