寫在前面的話,剛開始接觸Swift,基于swift3.0。理解的比較淺顯,目標(biāo)是知道怎么用。具體為什么這么用有些還不知道。
1、在swift自定義一個(gè)UIView類的時(shí)候需要重寫override init(frame:CGRect)方法和實(shí)現(xiàn)必寫的方法required init?(coder aDecoder:NSCoder)
如果只寫了override init(frame:CGRect),系統(tǒng)會(huì)默認(rèn)提示實(shí)現(xiàn)required init?(coder aDecoder:NSCoder)

2、在OC中的宏定義#define在swift中沒有了可以用常量或者函數(shù)代替,如常用的:屏幕的寬高和自定義顏色

3、swift中// MARK: - XXXXXX 相當(dāng)于#pragma mark - XXXXXX
4、代理傳值和OC中代理差不多用關(guān)鍵字protocol?
定義一個(gè)代理:
protocol MenuViewDelegate:NSObjectProtocol{
? ? ? ? ? ? func menuViewWithSelectItem(menuview:MenuView, itemButton:MenuItemButton)
}
因?yàn)榇硪脀eak關(guān)鍵字修飾,如果在代理方法的后面不加上NSObjectProtocol直接用weak修飾的話。編譯器會(huì)報(bào)錯(cuò)。
在一個(gè)類中關(guān)聯(lián)代理? weak var delegate:MenuViewDelegate? =nil 代理必須是可選的加“?”
在另一個(gè)類使用代理的時(shí)候,引入代理不是OC中的“<>” 而是直接在類的父類之后用逗號(hào)隔開“,”

代理也是頁面?zhèn)髦档囊环N實(shí)現(xiàn)方式,還有另外兩種(閉包和參數(shù)傳值具體可借鑒這位網(wǎng)友的文章http://m.itdecent.cn/p/636f0aca4fa3)
因?yàn)镾wift中的結(jié)構(gòu)體和枚舉也可以有協(xié)議。而結(jié)構(gòu)體和枚舉不通過引用計(jì)數(shù)來管理內(nèi)存,所以枚舉和結(jié)構(gòu)體的協(xié)議不能用weak修飾,因此如果在Swift中的協(xié)議不加上NSObjectProtocol或class的時(shí)候,用weak修飾編譯器會(huì)報(bào)錯(cuò),具體解釋可以看喵神的這篇文章(http://swifter.tips/delegate)
5、在OC中用set方法在Swift中可以用didSet代替

6、在Playground顯示一個(gè)創(chuàng)建的UI。
? ? ? 1)、首先要在代碼中導(dǎo)入PlaygroundSupport
? ? ? 2)、在把創(chuàng)建好的UI添加到PlaygroundPage.current.liveView上

打開右側(cè)的UI呈現(xiàn)頁面有兩個(gè)方法? 1:“Alt + Shift + Command + Return”2:打開Assistant Editor如下圖
