@@@ 如有寫的不對(duì) 或者 理解錯(cuò)誤的,歡迎提出來~~~~?
##Swift的相互引用問題:
1. 創(chuàng)建兩個(gè)對(duì)象:當(dāng)把對(duì)象變?yōu)閚il 的時(shí)候,兩個(gè)對(duì)象還是存在相互引用的問題;

注意點(diǎn):當(dāng)要進(jìn)行修改對(duì)象時(shí)候需要進(jìn)行變量常量的裝換;

1.可選鏈條的使用是
1.1 對(duì)象之間必須產(chǎn)生關(guān)系
1.2 從可選鏈條中取到的值的類型一定是一個(gè)可選類型
1.3.可選鏈條調(diào)用方法,系統(tǒng)會(huì)自動(dòng)判斷可選類型是否有值

;
###Swift中如何定義協(xié)議
1.跟OC中使用協(xié)議是一樣的,申明方法;
2.遵守協(xié)議:
3.協(xié)議中的方法默認(rèn)是需要全部實(shí)現(xiàn)的;
如果想有些方法可實(shí)現(xiàn)也可不實(shí)現(xiàn),那么前面必須加上 optional (可選)
4.在協(xié)議前面必須寫上 @objc? 是為了保留OC的某些特性?
原因:因?yàn)樵趨f(xié)議當(dāng)中有些方法可以選擇不實(shí)現(xiàn);可是默認(rèn)又是需要實(shí)現(xiàn)
所以在方法面前需要加上 optional 但是optional 是OC的,所以需要在協(xié)議前加上@objc 才能使用;

###再附上代理的實(shí)際使用小案例

###懶加載
swift中的懶加載是有專門的關(guān)鍵字來實(shí)現(xiàn)懶加載
lazy 關(guān)鍵字是用來定義某一個(gè) ” 屬性 “ 懶加載
1 .用到時(shí)在加載
2.多次使用只會(huì)加載一次
基本寫法
lazy var 變量 :類型 = {? 創(chuàng)建變量代碼 比如button 字典都可以? } ( )

###Swift中常見的注釋
1> 單行注釋
和OC完全一致 //
2> 多行注釋
swift中的多行注釋是可以嵌套使用
3> 文檔注釋
/// 文檔注釋
4> 分組注釋
###Swift中的訪問權(quán)限
internal : 內(nèi)部的
1> 當(dāng)不指定具體的訪問權(quán)限時(shí), 默認(rèn)的訪問權(quán)限就是internal
2> internal的訪問權(quán)限: 在當(dāng)前項(xiàng)目(包)的任何地方都可以訪問
private : 私有的
private的訪問權(quán)限 : 在當(dāng)前的源文件中可以訪問
public : 公共的
1> public的訪問權(quán)限 : 可以跨包進(jìn)行訪問
2> 包 : 項(xiàng)目/框架
###Swift處理異常
1. 在swift中如果在調(diào)用一個(gè)方法, 該方法最后一個(gè)throws, 那么說明該方法會(huì)拋出異常
2.如果該方法有拋出異常,必須對(duì)異常進(jìn)行處理. 如果不處理,則編譯不通過
3.三種處理異常的方式
3.1 try 方式—》手動(dòng)的處理異常,如果有異常,并且可以獲取到最終的異常結(jié)果
do {
} catch {
print( error )
}
3.2 try?? —>系統(tǒng)處理異常,若果有異常,則返回nil ,沒有異常,則返回結(jié)果
3.3 try ! —> 告訴系統(tǒng)該方法不可能有異常,注意,一定發(fā)生異常,程序就會(huì)崩潰;
一般來說,第三種方式是不推薦的
###如何自己來拋出異常
1. 在自己的方法中加上throw ,并且拋出異常的類型
通常我是使用enum來定義各種錯(cuò)誤的可能性;
