最近都是在用Swift, 深深的理解到Swift的安全性. 這種安全是體現(xiàn)在你不需要等到程序運(yùn)行期間去發(fā)現(xiàn)錯(cuò)誤, 而是在編譯的期間,Xcode就幫你檢查出來了. 這里不做詳細(xì)討論. 我下面所記錄的是在OC中, 如何選擇更好的方法, 去讓編譯器幫你檢查錯(cuò)誤.
今天看狐貍狗的Demo, 我先他里面有一代碼是這么寫的:
就是一個(gè)actionSheet 代理方法里面根據(jù)buttonIndex的值去執(zhí)行對(duì)應(yīng)的方法
然后我就好奇,為什么不直接用:
went后來我想了一下, (可能也是Swift寫了多段時(shí)間之后的后遺癥) 就發(fā)現(xiàn)其中可能出問題的幾個(gè)點(diǎn):
1, 如果這個(gè)時(shí)候self 為 nil
2, 如果self 自己本身那3個(gè)方法被改了名字
1,什么都不會(huì)發(fā)生
2,會(huì)引起: unrecognized selector sent to instance
如果按上面的寫法,
就不會(huì)存在這樣的問題, 當(dāng)我的方法名字被修改了時(shí)候:
Xcode會(huì)幫你檢查一次錯(cuò)誤