腾讯微群加入QQ群

 找回密码
 加入我们

!connect_header_login!

!connect_header_login_tip!

搜索
查看: 221|回复: 0

Swift中的get和set方法

[复制链接]
发表于 2016-8-23 13:21:20 | 显示全部楼层 |阅读模式

当我们得到属性值的时候,会调用该属性的get方法。

当我们去设置属性值的时候,会调用该属性的set方法。

当我们给属性设置值的时候,Swift会自动给我们创建一个名为newValue的常量并且可以用于set{}中。

Swift中有储值属性和计算属性,一般我们应该是给计算属性添加get和set方法,现在先通过一个Example展示:

var A:Int = 0
var B:Int = 0

var C:Int {
	get {
		return 1
	}
	set {
		print("Recived new value", newValue, " and stored into 'B' ")
		B = newValue
	}
}

//When we are getting a value of C it fires get{} part of C property
A = C
A            //Now A = 1

//When we are setting a value to C it fires set{} part of C property
C = 2
B            //Now B = 2

var c:Int = 0
var _num : Int = 2
var num : Int {
get{
	return _num
	} set (newValue) {
	if newValue >= 2 {
	   _num = newValue
	} else {
	    print("error: cannot have family with less than 2 members")
	    c = 0
	    _num = 0
	}
    }
}

下面这段代码是我自己写的,如果var a = num,那么会调用num的get方法,会返回_num,所以a的值为2

如果num = 5,调用set方法,newValue为5且大于2,因此此时_num的值为5

如果num = 1,调用set方法,走else分支,c = 0, _num = 0


0
0

转自:http://blog.csdn.net/henanzhg/article/details/50790022?locationNum=5
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|手机版|Archiver|小黑屋|一起疯|苦咖啡 ( 新ICP备12000197号  

GMT+8, 2018-1-17 04:55 , Processed in 0.044526 second(s), 13 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表