什么是iOS

ios的四层结构
- iOS从上至下可以分成4层,Cocoa Touch ——Media——Core Services——Core OS,最上层面向用户,最底层是Unix。
关于@IBAction中的sender参数
@IBAction func filpCard(_ sender: UIButton ){
filpCard(withEmoji: "ghost" , on: sender)
}
- 以前一直不理解这个sender的作用,这里的sender参数代表着与xib中连接的UIButton,on:sender 即是将对应的按钮(UIButton)作为参数传给flipCard()函数。
- UIButton也可以作为参数传递,比如这里在某个UIButton上添加某个字符String,UIButton需要作为一个参数传递,所以在创建@IBAction时将sender传递了进来,如果不需要sender,可以不传。
关于swift中参数的命名规则
func flipCard(withEmoji emoji: String , on button: UIButton){
}
- withEmoji,on 是外部参数(实参),而emoji ,button是内部参数(形参),swift的参数有内外两个名字。
- 这样的命名规则是为了使在调用函数时,读起来有更通顺的语义,比如 filpCard(withEmoji: "ghost" , on: sender)这个函数,flip Card with Emoji xxx on xxx 读起来是一句很通顺的英文。
关于变量初始化

变量初始化
- swift要求所有变量必须初始化,你可以使用initializer初始化flipCount变量
- 第二种方法初始化一个变量: var flipCount: Int = 0
- swift是一种严格的类型明确的语言,任何变量都必须被指明它的类型
关于didSet
var flipCount: Int = 0 {
didSet{
flipCount.text = "FlipCounts : \( flipCount ) "
}
}
- didSet是一种属性观察模式,每当flipCount变量被set,都会调用didSet函数。
- 这样的命名规则是为了使在调用函数时,读起来有更通顺的语义,比如 filpCard(withEmoji: "ghost" , on: sender)这个函数,flip Card with Emoji xxx on xxx 读起来是一句很通顺的英文。
网友评论