28.swift高级
2016-03-23 13:21
357 查看
在本类的属性必须完成初始化之后,
再调用父类初始化的方法
在同一个文件夹下所有的东西是共享的
不用引入头文件
调用堆栈里边的小人一般为自己写的
所有的构造函数都是init
重载就是函数名相同,
参数个数/参数名/参数类型
override是重写
重写和重载的区别
重写:
子类去重写父类的方法,
需要对子类进行一定的扩展
重写需要用关键字
override
重载方法名相同参数个数/参数名称/参数类型不同
如果重载狗在函数但是没有实现默认的狗在函数init()系统不再提供默认的构造函数
kvc
运行时
系统动态的给属性赋值
属性有内存
给实例化对象发送
子类可以继承父类的kvc构造函数
便利构造函数返回的类可能为nil
便利构造函数,需要调用其他的构造函数,来完成初始化
要用self.init---
便利构造函数的关键字
convenience
子类的便利构造函数继承了父类的便利构造函数
即便复制父类的
便利构造函数,到子类中也不会调用父类的遍历构造函数
定义一个_name
var _name:String?
var name: String?{
get{
ret _name
}
set {
_name =
newValue
}
}
private
定义成私有的
只读
只在方法中写get方法
懒加载
lazy var
person: Person = {return Person()}()
lazy var
demoPerson: Person = Person()
let personFunc = {() -> Person
in return Person()}
lazy var demoPerson:Person = self.personFunc()
extentsion
类似于category
来添加方法,
添加方法只能作为区分代码块使用,
不能像category那样调用方法
数据源方法
只能放至方法
不能放置属性
extentsion ViewController{ }
as(默认)
一般应用于String
转换成 NSString ,
array
转NSArray
系统的东西转
as! (强转)
告诉就是后面的哪种类型
应用于我们自己定义的类
as? (可选)
告诉不一定是后面的类型
可选项的针对方案
第一个让系统去提示我们,然后就分析
第二个
多敲
在cell中用
didSet
就相当于
oc
重写set方法
var person: Person?{didSet{ nameLabel.text = person?.name ageLabel.text = "\(person?.age ?? 0)"}}
textField.hashText()
有值的话
再调用父类初始化的方法
在同一个文件夹下所有的东西是共享的
不用引入头文件
调用堆栈里边的小人一般为自己写的
所有的构造函数都是init
重载就是函数名相同,
参数个数/参数名/参数类型
override是重写
重写和重载的区别
重写:
子类去重写父类的方法,
需要对子类进行一定的扩展
重写需要用关键字
override
重载方法名相同参数个数/参数名称/参数类型不同
如果重载狗在函数但是没有实现默认的狗在函数init()系统不再提供默认的构造函数
kvc
运行时
系统动态的给属性赋值
属性有内存
给实例化对象发送
子类可以继承父类的kvc构造函数
便利构造函数返回的类可能为nil
便利构造函数,需要调用其他的构造函数,来完成初始化
要用self.init---
便利构造函数的关键字
convenience
子类的便利构造函数继承了父类的便利构造函数
即便复制父类的
便利构造函数,到子类中也不会调用父类的遍历构造函数
定义一个_name
var _name:String?
var name: String?{
get{
ret _name
}
set {
_name =
newValue
}
}
private
定义成私有的
只读
只在方法中写get方法
懒加载
lazy var
person: Person = {return Person()}()
lazy var
demoPerson: Person = Person()
let personFunc = {() -> Person
in return Person()}
lazy var demoPerson:Person = self.personFunc()
extentsion
类似于category
来添加方法,
添加方法只能作为区分代码块使用,
不能像category那样调用方法
数据源方法
只能放至方法
不能放置属性
extentsion ViewController{ }
as(默认)
一般应用于String
转换成 NSString ,
array
转NSArray
系统的东西转
as! (强转)
告诉就是后面的哪种类型
应用于我们自己定义的类
as? (可选)
告诉不一定是后面的类型
可选项的针对方案
第一个让系统去提示我们,然后就分析
第二个
多敲
在cell中用
didSet
就相当于
oc
重写set方法
var person: Person?{didSet{ nameLabel.text = person?.name ageLabel.text = "\(person?.age ?? 0)"}}
textField.hashText()
有值的话
相关文章推荐
- 27.swift基础
- swift的一些常见用法
- sqlite系列(2)使用FMDB保存数据swift
- 实现类似于格瓦拉启动页中的放大转场动画(OC&Swift)
- swift学习(基本运算符,字符和字符串)
- OC与Swift混编
- swift闭包--简明代码理解
- 微信Swift完整项目应用源码
- 关于最新手机号码验证的正则表达式(oc及swift)
- swift 与oc 混编
- 【译】Swift 字符串速查表
- Swift中编写单例的正确方式
- 苹果发布Xcode 7.3,Swift更新至2.2版本
- thrift:swift项目笔记
- Swift之下标脚本
- IOS/Swift UIView中的坐标转换
- Swift 开发语法
- Swift iOS 日期操作:NSDate、NSDateFormatter
- Swift 调用C函数
- swift开发笔记24 解决键盘遮挡输入框 的方法