## Swift语言基础完结版-3

@@@ 如有写的不对 或者 理解错误的,欢迎提出来~~~~ 

##Swift的相互引用问题:

1. 创建两个对象:当把对象变为nil 的时候,两个对象还是存在相互引用的问题;

## Swift语言基础完结版-3_第1张图片

注意点:当要进行修改对象时候需要进行变量常量的装换;

## Swift语言基础完结版-3_第2张图片
###可选链的使用 (重点:开发中随时用到)

1.可选链条的使用是

1.1 对象之间必须产生关系

1.2 从可选链条中取到的值的类型一定是一个可选类型

1.3.可选链条调用方法,系统会自动判断可选类型是否有值

## Swift语言基础完结版-3_第3张图片

###Swift中如何定义协议

1.跟OC中使用协议是一样的,申明方法;

2.遵守协议:

3.协议中的方法默认是需要全部实现的;

如果想有些方法可实现也可不实现,那么前面必须加上 optional (可选)

4.在协议前面必须写上 @objc  是为了保留OC的某些特性?

原因:因为在协议当中有些方法可以选择不实现;可是默认又是需要实现

所以在方法面前需要加上 optional 但是optional 是OC的,所以需要在协议前加上@objc 才能使用;

## Swift语言基础完结版-3_第4张图片

###再附上代理的实际使用小案例

## Swift语言基础完结版-3_第5张图片

###懒加载

swift中的懒加载是有专门的关键字来实现懒加载

lazy 关键字是用来定义某一个 ” 属性 “ 懒加载

1 .用到时在加载

2.多次使用只会加载一次

基本写法

lazy var 变量 :类型 = {  创建变量代码 比如button 字典都可以  } ( )

## Swift语言基础完结版-3_第6张图片

###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来定义各种错误的可能性;

## Swift语言基础完结版-3_第7张图片

你可能感兴趣的:(## Swift语言基础完结版-3)