【swift-总结】属性

原创 2015年07月07日 14:23:07

属性分为存储属性和计算属性

存储属性

没有setter和getter方法

/**
*  存储属性
*/
struct MyRange {
    var firstValue: Int
    let length: Int
}

var range = MyRange(firstValue: 0, length: 3)

range.firstValue = 3;

 ///结构体常量不能改变里面的存储属性
let constMyRange = MyRange(firstValue: 5, length: 6)

懒加载属性

//在属性前面添加一个lazy

lazy vay count: Int

计算属性

计算属性拥有set和Get方法

/**
*  计算属性
*/

struct Point {
    var x = 0.0, y = 0.0
}

struct Size {
    var width = 0.0, height = 0.0
}

struct Rect {
    var origin = Point()
    var size = Size()
    var center: Point {
        get {
            let centerX = origin.x + size.width / 2
            let centerY = origin.y + size.height / 2
            return Point(x: centerX, y: centerY)
        }
        set(newValue) {
            origin.x = newValue.x - size.width / 2
            origin.y = newValue.y - size.height / 2
        }
    }
}

var square = Rect(origin: Point(x: 0.0, y: 0.0), size: Size(width: 10.0, height: 10.0))

let squareCenter = square.center

square.center = Point(x: 15.0, y: 15.0)

属性监测器

willSet和didSet方法

class StepCount {
    var total:Int = 0 {
        willSet {
            print("willSet run")
        }
        didSet {
            print("didSet run")
        }
    }
}

var stepCounter = StepCount()

///开始会执行willSet方法,赋值完以后会执行didSet方法
stepCounter.total = 200

类型属性

类型属性是用类型名直接访问的

/**
*  类型属性
*/

struct myStruct {
    static var myString = "hello"
    static var intProperty: Int {
        return 5
    }
}

enum myEnum {
    static var myString = "hello"
    static var intProperty: Int {
        return 5
    }
}

class myClass {
    //类中不支持存储属性位类属性
//    class var myString = "hello"
    class var intProperty: Int {
        return 5
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

swift3.0 传值总结(属性、代理、闭包、通知)

swift3.0 传值总结(属性、代理、闭包、通知)

Swift 属性学习笔记

Swift 属性的学习笔记、 存储属性、计算属性

swift - 类和结构体(之属性)

值类型和引用类型中可以通过外部访问的成员(除了方法外)都叫做属性。 swift中到底存在多少种属性? 1.存储属性 类和结构体的成员变量或者成员常量都属于存储属性。 struct FixedLengt...

iOS swift 字符属性NSAttributedString描述

/*  字符属性    字符属性可以应用于 attributed string 的文本中。    NSString *const NSFontAttributeName;...

Swift学习记录 -- 13.类的构造方法及属性监听

类的构造方法原理和OC差不多 , 只是属性手动赋值时 , 有些麻烦 , 也有些难以理解 , 不过幸好有KVC , 解决了大部分问题 . 至于属性观察 , 调用的方法想必也不陌生 , 不错 , 正是OC...

《 Swift UITabBarController 的使用和自定义TabBar,和部分属性和代理的使用》

/*      《 Swift  UITabBarController 的使用和自定义TabBar,和部分属性和代理的使用》 */ /*     标签栏控制器是当前市场App...

《从零开始学Swift》学习笔记(Day 38)——构造函数与存储属性初始化

构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化。在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和height后,那么在定义他们时就不需要初始化了。 ...

swift之属性

swift属性
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)