iOS: 學習筆記, Swift與Objective-C混用簡明教程(轉載)

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   

Swift與Objective-C混用簡明教程

轉載自:https://github.com/lifedim/SwiftCasts/tree/master/000_mix_swift_objc

我想很多iOS開發人員在知道Swift後,心中最大的問題就是如何將Swift應用到原有項目之中。下面我將簡要介紹這2種語言的混用方法,內容參考自官方文檔 Using Swift with Cocoa and Objective-C ,推薦大家閱讀。

在Swift中使用Objective-C類
  • 在Xcode6中建立檔案(?+N),選擇Swift,然後系統框提示是否同時建立XXX-Bridging-Header.h檔案(XXX為你的項目名稱),確定。

    這個自動建立出來的Bridging-Header.h檔案是溝通Swift世界和Objective-C世界的橋樑。任何需要在Swift檔案中使用的自訂Objective-C類,必需先引入此Header檔案

    假設項目名稱為TestSwift,其中存在Objective-C類Note(在Note.m中定義):

      @interface Note : NSObject  - (void)log;  @end

    想在Swift中引用這個類,首先需要在TestSwift-Bridging-Header.h檔案中import Note:

      #import "Note.h"

    然後在Swift代碼中就能使用Note了:

    class ViewController: UIViewController {      override func viewDidLoad() {          super.viewDidLoad()          var a:Note = Note()          a.log()      }  }
在Objective-C中使用Swift類
  • 想在Objective-C檔案中引用Swift檔案中定義的類,需要在Objective-C檔案中引入一個特殊的標頭檔: XXX-Swift.h,假設項目名稱為 TestSwift,那麼這個需要引入的header檔案為TestSwift-Swift.h

    假設存在Book類(在Book.swift檔案中定義):

      import Foundation  class Book : NSObject {      var title:String      init() {          self.title = "Default Book"      }      func log() {          println(self.title)      }  }

    在需要引用Book類的Objective-C檔案中,先引入TestSwift-Swift.h標頭檔(此檔案不需要建立)

    #import "TestSwift-Swift.h"

    然後就能使用Book了:

     Book *book = [Book new]; [book log];

    最後再囉嗦一句,XXX-Swift.h檔案在項目中是不可見的(估計此檔案在編譯時間自動產生),在使用時只需遵循蘋果既定規則就OK了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.