日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      西西首頁常用軟件軟件下載安卓軟件游戲下載安卓游戲MAC應(yīng)用驅(qū)動(dòng)下載安卓電視
      系統(tǒng)工具網(wǎng)絡(luò)工具媒體工具圖形圖像社交軟件殺毒軟件辦公軟件驅(qū)動(dòng)軟件學(xué)習(xí)教育閱讀工具其他軟件
      當(dāng)前位置:首頁MAC軟件Mac編程軟件 → 蘋果開發(fā)語言轉(zhuǎn)Swift工具(iSwift) v1.4 官方最新版

      蘋果開發(fā)語言轉(zhuǎn)Swift工具(iSwift)

      蘋果開發(fā)語言轉(zhuǎn)Swift工具(iSwift)
      • 更新:2015-09-25 11:55
      • 大小:6.0M
      • 版本:v1.4 官方最新版
      • 語言:中文
      • 類型:Mac編程軟件
      • 平臺(tái):Mac
      本類排行
      • 應(yīng)用介紹
      • 應(yīng)用截圖
      • 下載地址
      • 網(wǎng)友評(píng)論

      iSwift是一款可以將蘋果原開發(fā)語言O(shè)bjective-C轉(zhuǎn)換為最新的Swift開發(fā)語言的工具,你可直接把代碼文件拖入iSwift圖標(biāo)上進(jìn)行快速轉(zhuǎn)換,并在左右兩個(gè)區(qū)域顯示兩種語言,如果你有之前使用 Objective-C 開發(fā)的 Mac 軟件或 iOS 應(yīng)用,不妨使用 iSwift 來將自己的作品重構(gòu)一下吧!

      swift和object-c區(qū)別:

      swift 跟 objc 共用同一套的運(yùn)行時(shí)環(huán)境

      swift 的類型,可以橋接到 objc 的類型,反之亦然。如 string 對應(yīng)原來objc的NSString, closures對應(yīng)objc的block,等等。objc 積累下來的大量庫,實(shí)現(xiàn)不用改寫,swift 就直接可以使用。(最多加個(gè)聲明文件)?磧蓚(gè)API的聲明,對比一下

      objc

      voiddispatch_apply(size_t iterations, dispatch_queue_t queue,
              void (^block)(size_t));- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

      swift

      func dispatch_apply(iterations: UInt, queue: dispatch_queue_t!, block: ((UInt) -> Void)!)
      func touchesBegan(touches: NSSet!, withEvent event: UIEvent!)

      我懷疑,swift中的接口文件,是利用原來objc,c中的接口文件自動(dòng)程序生成的。
      同一個(gè)工程,可以同時(shí)使用swift, objc, c, c++ 四種編譯語言(額外嵌入的腳本語言另算)

      原來的 iOS/Mac 工程,已經(jīng)可以同時(shí)使用objc, c, C++三種語言。現(xiàn)在支持第四種。objc, c, c++三種語言的結(jié)合很容易, objc跟c本身就兼容,objc跟c++結(jié)合只要將文件名改成.mm。而swift跟其它語言的結(jié)合,需要另外的文件進(jìn)行橋接,其實(shí)也挺方便的。

      這里的橋接很容易,Apple自家的各種 C 庫移植過來了。比如Core Image/Audio,直接包含

      import CoreAudio
      import CoreImage

      就可以使用了。

      現(xiàn)在swift完全可以跟objc并存,原來的工程不建議重寫,也不用重寫。順其自然,慢慢讓它進(jìn)化就是了。

      swift 寫法看起來像腳本語言,但它是真正的編譯語言

      初學(xué)者,看它使用了

      let a = 4
      var b = "hello"

      沒有類型定義,就想當(dāng)然的覺得它是腳本語言,解釋執(zhí)行,這是錯(cuò)誤的。上面兩行語句是用了類型推導(dǎo),類似 C++ 里面的auto。swift跟objc的運(yùn)行時(shí)環(huán)境一樣,寫的程序跑起來不會(huì)比objc慢。swift區(qū)分了struct和class, 分別使用傳值跟傳引用。適當(dāng)?shù)厥褂胹truct,應(yīng)該會(huì)比objc要快一點(diǎn)。

      swift 吸收了很多其它語言的語法,寫起來比objc簡潔得多,不過它骨子里面的概念,跟原來objc差不多

      編程語言的語法重要,但是語法背后的概念更重要。比如面向?qū)ο,常用概念無非是,繼承,多態(tài),封裝,信息隱藏等。繼承又可能分成多重繼承,接口繼承,實(shí)現(xiàn)繼承;蛘哌會(huì)有些嵌套類,嵌套函數(shù)等等。

      當(dāng)明白語法背后的概念,知道為什么需要有這些東西。之后從一門語言切換到另一門有著相同概念的語言,其實(shí)很容易。

      而語法會(huì)影響表達(dá),理論上每門語言都可以表達(dá)任何概念。不過當(dāng)某種概念在某門語言中,很難表達(dá)出來,就會(huì)傾向于不這樣使用它,這種概念在那門語言的社區(qū)就難以被人熟知。

      感覺上,swift有著 obj-c, C++, Ruby的影子。

      暫時(shí),我自己最喜歡的3個(gè)特性有

      tuple,終于可以返回多個(gè)數(shù)值了。一行交換兩個(gè)值。C++里面的tie+tuple也可以實(shí)現(xiàn)類似功能,不過使用庫,顯得噪音太多。

      closure,喜歡它的簡寫,還有在函數(shù)最后一參數(shù),可以寫在()外面。這些特性,用來寫函數(shù)式風(fēng)格的程序,會(huì)很好看。而原來objc的block, 還有c++的function, 就太啰嗦了。

      switch,case里面的條件匹配。

      這些語法,編譯最后還是會(huì)映射成原來objc的運(yùn)行模型。原來objc的概念,引用記數(shù),ARC, 屬性,協(xié)議,接口,初始化,擴(kuò)展類,匿名函數(shù)等等,繼續(xù)有效。

      我將swift看成是objc的一塊大大的語法糖。

      有個(gè)大塊頭的東西,是原來objc沒有的,就是泛型。swift中 將那種操作寫一次,就可以作用多個(gè)類型的語法叫做generics(泛型),而C++中稱為template(模板),叫法不同,本質(zhì)是同樣的東西。

      總的說來,swfit 涵蓋了現(xiàn)在流行的編程方式,結(jié)構(gòu)化,面向?qū)ο螅盒,函?shù)式。

      swift的新語法,可以很好地支持內(nèi)部DSL

      有一種編程風(fēng)格,不太好歸類。就是將程序拆分成,描述+解釋。解釋部分寫一次,其它地方使用描述式的語句,而不是命令式的語句。

      內(nèi)部DSL,通常利用主語言的語法特性,創(chuàng)出一套寫法,來寫一些描述性的語句。這些語句組合起來,就像一門新語言似得。這個(gè)比較難理解。舉個(gè)例子(從ruby那里借過來的),假如計(jì)算,幾小時(shí)之后的秒數(shù)。C語言中,大概會(huì)寫成

      getHourSeconds(3)

      而現(xiàn)在 swift中,只要定義了擴(kuò)展

      extension Int
      {
          var hours:Int
          {
              return self * 3600
          }
      
          var ago:Int
          {
              return -self
          }
      }

      就可以寫成

      3.hours
      3.hours.ago

      分別是3小時(shí)后的秒數(shù),3小時(shí)前的秒數(shù)。

      同理,也可以寫成

      10.days
      10.days.ago

      這種寫法,看起來跟原來的命令式寫法完全不同。這些程序是描述性的。原來的objc, 做不到這點(diǎn)。 我估計(jì)swift以后會(huì)冒出大量這樣風(fēng)格的庫。

      這種風(fēng)格,到底好不好,要看情況。比較方便定義內(nèi)部DSL的語言, 我自己知道的有C++, Ruby, Lisp,F(xiàn)在多了Swift。

      認(rèn)為所有人都是0基礎(chǔ)的,是錯(cuò)誤的

      有些人學(xué)得特別快,因?yàn)橹暗幕A(chǔ)好。語言的語法只是表面,表面的東西總是變動(dòng)得比較快的。底下的東西重要得多,而看不見。水面一塊冰,有些人是冰山露出一角,有些人是無根的浮冰?雌饋聿畈欢啵鋵(shí)差別十分之大。

      我相信有些人,在兩個(gè)小時(shí)之內(nèi)就可以使用這門新語言。

      提提那個(gè)Playground

      之前蘋果的員工,Bret Victor 演講過個(gè)視頻。提到這個(gè)這種可視化編程。當(dāng)我們每一步操作,都得到實(shí)時(shí)地反饋,我們的做法會(huì)有很多不同,做出的東西也會(huì)不同。這個(gè)Playground,用來學(xué)習(xí)swift的特性很好用,不過我還不知道怎么才能跟工程結(jié)合起來使用,不作評(píng)論。

      現(xiàn)階段,我自己的做法

      我自己寫的新項(xiàng)目,將會(huì)有一部分使用swift來編寫。但還是會(huì)以objc為主。發(fā)覺現(xiàn)在Xcode 6 beta版本,對swift的語法提示支持不好,不能打幾個(gè)字母就自動(dòng)完成。再觀察一陣子。

      我不敢展望太多,或者預(yù)測什么,通常提前預(yù)測都是錯(cuò)的,會(huì)讓人抓住把柄。但感覺Apple發(fā)布swift, 絕不是玩玩而已。

      更新日志:

      版本1.3新功能:  

      遞增/遞減運(yùn)算符不正確翻譯(問題# 14)

      添加更多的類型:cgfloat,cgsize,CGRect,cgpoint,cgvector(問題# 6)

      固定的問題與#導(dǎo)入指令和使用類型(知道問題# 5)

      # pragma指令不被認(rèn)可的(問題# 15)

      類繼承不轉(zhuǎn)換(問題# 9)

      類的擴(kuò)展不被認(rèn)可的(問題# 7)

      附加偏好面板

      喜好:添加選項(xiàng)來啟用/禁用確認(rèn)對話框關(guān)閉/打開文件(問題# 3)

      喜好:添加選項(xiàng)來啟用/禁用活你類型轉(zhuǎn)換(相關(guān):# 16)

      上的拖放編輯工作(主要問題# 17)

      禁用視圖拖放迅速(問題# 18)

      實(shí)例變量不認(rèn)可(問題# 8)

      下載地址

      下載地址

      發(fā)表評(píng)論

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      查看所有(0)條評(píng)論 > 字?jǐn)?shù): 0/500