隨著xcode6.3正式版本的推出,swift語言也正式進入1.2版本,那麼1.2版本有什麼新特性呢?來快速了解一下吧。
1.速度的提公升
速度的提公升首先體現在對工程中增量的單獨編譯,這使得我們在改動較大的工程的時候,執行速度會得到大幅度的提公升。
其次體現在swift自己的執行庫的執行時性的增強。swift剛推出時自己的庫執行速度不夠快,現在在這個方面做了大幅度的提公升。
2.可選繫結的簡化
之前在swift和oc的對比中我們講過了swift中的可選繫結,也就是常用的if - let結構,來看看之前的例子:
if let shareprice = stock.price }
如果有多個可選繫結,那麼需要縱深地來寫,也就說我們在不停地巢狀這些if let,看起來很複雜,括號過多容易出錯,在1.2版本中優化了這個結構,我們可以把所有的if let寫在一句中:
let totalcost = shareprice * 100
println(totalcost)}
我們只需要寫第一句判斷語句if,之後的let語句可以用,分隔併排來寫,這樣只需要一對大括號{},語法簡潔了不少。
3. as用法的改動
如果你之前在1.1版本編過工程,那麼當1.2版本更新的時候工程裡的報錯可能會嚇你一跳,別擔心,大部分都是由於as用法的改動。
請看圖:
如果我們有乙個mytableview1它是乙個uiview把它轉成nsobject的話是向上轉型,那麼我們使用as就可以。
如果要向下轉型,我們確定它是uitableview型別的,那麼我們可以使用as!來轉型,這叫強制下轉。如果我不確信mytableview1是什麼型別的,它可能是乙個uitableview也可能是乙個uibutton,那麼向下轉型時我需要使用as?,這叫安全下轉。
4.swift原生集合型別set
接觸過數學的話我們肯定對集合不會陌生,集合和陣列的區別是陣列中可以有重複的元素,但是集合中不會有重複的元素。之前在swift中是沒有set這個資料型別的,我們只能使用oc中的nsset,現在swift中有原生的集合型別set了。
5.常量的延遲載入
我們知道swift中要求類初始化時類的所有屬性必須被初始化,變數可以有懶載入,現在常量也有了延遲載入機制:
let 餓:bool
if 吃過飯了
else
我們定義了乙個常量但是沒有賦值,我們可以在使用它之前給它賦值。
6.與oc橋接的變化
swift與oc的互動和橋接還在衍生中。
首先是可選型別的互通,在oc中有乙個關鍵字叫nonnull(非空),比如oc中的nonnull nsstring在swift中就是string,同理oc中的nullable nsstring在swift中就是string?
第三種是未確定是否為空,null_unspecified nsstring對應swift中的string!
以上是可選型別的互通,其次是橋接的變動,現在swift中不再接受nsstring和string的互通了,我們在swift中逐漸淘汰nsstring的使用。
7.遷移助手
那麼在swift版本公升級之後如何快速公升級我們自己的程式呢?xcode中新增了遷移助手,可以幫助我們公升級我們程式的版本:
具體位置如圖:
大家可以試一下。
在PhoneGap1 2版本中有什麼新特性?
phonegap1.2有各種各樣的貢獻者,但很多最重要的開發者都在changelog中列出來了。joe bowser負責了幾個最為重要的更新,包括公升級到android 4.0 ice cream sandwich,修復了 jsconfirm從而不會影響到back按鈕 並去掉了相機許可權。bowse...
NHibernate 3版本新特性
在configuration部分新增兩種loquacious configuration方式 流配置 fluent configuration 和lambda表示式配置 lambda configuration fluent configuration顧名思義,使用fluent api配置sessi...
Yii2版本新特性簡介
yii2 beta版本在今年4月份發布,目前正在修改問題和完善文件中。yii2要求php版本不低於5.4,主要有如下改進 1 支援php框架間協作組制定的psr 4標準,這簡化了目錄並提高了類自動載入速度 2 內建支援restful api框架 3 支援依賴注入 dependency injecti...