swift的驚喜與疑問

2021-07-24 19:34:35 字數 1007 閱讀 9863

先上幾張:

先說swift疑問,即? 上面兩張圖就很好的反應了乙個問題,即所有var (變數)宣告屬性的時候在屬性型別後面都會新增乙個問號?官方解釋:可選型別即optional。

optional :

在使用optional值的時候需要在具體的操作,比如呼叫方法、屬性、下標索引等前面需要加上乙個?,經喵神指正,」optional chaining的問號的意思是詢問是否響應後面這個方法,和原來的isresponsetoselector有些類似」,如果是nil值,也就是optional.none,固然不能響應後面的方法,所以就會跳過,如果有值,就是optional.some,可能就會拆包(unwrap),然後對拆包後的值執行後面的操作,比如:

let hashvalue = strvalue?.hashvalue

strvalue是optional的字串,如果strvalue是nil,則hashvalue也為nil,如果strvalue不為nil,hashvalue就是strvalue字串的雜湊值。

所以,?就會有兩種使用場景:1.宣告optional值變數    2.

用在對optional值操作中,用來判斷是否能響應後面的操作。

再說swift中的感嘆號「 !」,上面說到 當使用可選型別的時候,需要對屬性進行拆包,那麼怎麼拆包了??

1.方式一:

if strvalue

2.方式二:

let hashvalue = strvalue!.hashvalue

而在使用方式二拆包的時候就會預設 strvalue的值一定不是nil,否則crash!這或許就是「驚喜」吧;

在第一張的上面你就會發現他的屬性型別後面加的是「 !」,那是因為,在xib的使用過程中所托拉拽的屬性拆包的時候一定是有值的!!!!

OC和Swift混編 驚喜

今天在和一位前輩交流的之後,使用了oc和swift混編開發,遇到了乙個讓我忍不住要歡呼的情況,在這裡,跟大家分享一下,也再次讚嘆一下xcode的強大.oc和swift混編出現最多的就是在編寫swift 的過程中使用oc框架了.以前,在xcode6.3beta版本的時候,我猶記得我們在進行oc和swi...

dsp EDMA學習與疑問

edma是一種資料傳輸模式,用edma建立無需cpu干預的外部裝置與記憶體之間的直接資料傳輸通道,節省cpu工作時間。edma控制器主要包含傳輸控制器和通道控制器兩部分。傳輸控制器包含了將要傳輸的資料,而通道控制器是通過乙個觸發事件或者它接收到乙個傳輸請求tr,從而實現進入傳輸入口的。注意它的傳輸主...

聊聊手遊的那些驚喜與驚嚇

引言 對於乙個能夠蘊藏巨大資訊量的遊戲產品而言,多為玩家準備一些驚喜的心態,是不會有錯的。很多的案例和事實也證明,驚喜會給遊戲帶來很多產品設計師意想不到的收穫,但如果驚喜運用得不好往往會程式設計驚嚇,甚至還會給產品帶來可怕的負面效果。相關圖書 產品為王 移動遊戲產品設計規則 懷舊和感動都是製造驚喜的...