@@@ 如有写的不对 或者 理解错误的,欢迎提出来~~~~
##Swift的相互引用问题:
1. 创建两个对象:当把对象变为nil 的时候,两个对象还是存在相互引用的问题;
注意点:当要进行修改对象时候需要进行变量常量的装换;
1.可选链条的使用是
1.1 对象之间必须产生关系
1.2 从可选链条中取到的值的类型一定是一个可选类型
1.3.可选链条调用方法,系统会自动判断可选类型是否有值
;
###Swift中如何定义协议
1.跟OC中使用协议是一样的,申明方法;
2.遵守协议:
3.协议中的方法默认是需要全部实现的;
如果想有些方法可实现也可不实现,那么前面必须加上 optional (可选)
4.在协议前面必须写上 @objc 是为了保留OC的某些特性?
原因:因为在协议当中有些方法可以选择不实现;可是默认又是需要实现
所以在方法面前需要加上 optional 但是optional 是OC的,所以需要在协议前加上@objc 才能使用;
###再附上代理的实际使用小案例
###懒加载
swift中的懒加载是有专门的关键字来实现懒加载
lazy 关键字是用来定义某一个 ” 属性 “ 懒加载
1 .用到时在加载
2.多次使用只会加载一次
基本写法
lazy var 变量 :类型 = { 创建变量代码 比如button 字典都可以 } ( )
###Swift中常见的注释
1> 单行注释
和OC完全一致 //
2> 多行注释
swift中的多行注释是可以嵌套使用
3> 文档注释
/// 文档注释
4> 分组注释
###Swift中的访问权限
internal : 内部的
1> 当不指定具体的访问权限时, 默认的访问权限就是internal
2> internal的访问权限: 在当前项目(包)的任何地方都可以访问
private : 私有的
private的访问权限 : 在当前的源文件中可以访问
public : 公共的
1> public的访问权限 : 可以跨包进行访问
2> 包 : 项目/框架
###Swift处理异常
1. 在swift中如果在调用一个方法, 该方法最后一个throws, 那么说明该方法会抛出异常
2.如果该方法有抛出异常,必须对异常进行处理. 如果不处理,则编译不通过
3.三种处理异常的方式
3.1 try 方式—》手动的处理异常,如果有异常,并且可以获取到最终的异常结果
do {
} catch {
print( error )
}
3.2 try? —>系统处理异常,若果有异常,则返回nil ,没有异常,则返回结果
3.3 try ! —> 告诉系统该方法不可能有异常,注意,一定发生异常,程序就会崩溃;
一般来说,第三种方式是不推荐的
###如何自己来抛出异常
1. 在自己的方法中加上throw ,并且抛出异常的类型
通常我是使用enum来定义各种错误的可能性;