1. 程式人生 > >如何在OC類裡 呼叫swift類

如何在OC類裡 呼叫swift類

一、OC呼叫swift檔案

  在OC專案中建立一個swift檔案的時候,Xcode 會提示 需要建立一個橋接檔案,點確定建立橋接檔案,Xcode會自動建立一個橋接檔案

名字:工程名-Bridging-Header.h

這個橋接檔案是 swift 呼叫OC檔案的時候用的

1、

  進入TARGETS ->Build Settings -> Packaging 中

設定Defines Module為YES

設定 Product Module Name ,也可以不設定,預設為工程的名字。這個在後面會用到

2、

  在swift寫一個類

注意這個類一定要繼承NSObject,不然在OC中沒法用

class hello: NSObject {
    var address : String
    var gender: String
    init(address:String,gender:String){         self.address = address
        self.gender = gender
    }
    func method() {         print("message \(self.address + self.gender)")     } }

3、

  在OC需要用到的swift檔案中 匯入檔案 "Product Module Name -Swift.h"  因為 Product Module Name 預設是工程的名字

所以直接匯入 #import "工程名-Swift.h"

4、

  記著寫完先command +B編譯一下,如果沒有報錯就可以在OC檔案呼叫swift中的類了

hello *helloss = [[helloalloc]initWithAddress:@"上海"gender:@"男"]; [helloss method];

相關推薦

如何在OC 呼叫swift

一、OC呼叫swift檔案   在OC專案中建立一個swift檔案的時候,Xcode 會提示 需要建立一個橋接檔案,點確定建立橋接檔案,Xcode會自動建立一個橋接檔案 名字:工程名-Bridging-Header.h 這個橋接檔案是 swift 呼叫OC檔案的時候

C#如何在普通呼叫窗體控制元件

一種是建立窗體物件的方式,通過物件呼叫控制元件或方法  例如: Form1 form1 = new Form1(); form1.Button; //呼叫控制元件 form1.Method(); //呼叫方法123 當然了,控制元件的Modifiers屬性要設定成pub

java呼叫祖父被父重寫了的例項方法

java.lang.invoke 包主要用於動態確定目標方法 在java語言中無法把函式作為一種引數進行傳遞,C++裡有函式指標,C#裡有相似的delegate、event型別。在java裡普遍的做法

如何通過父引用“呼叫”子所獨有的方法

最近看書,看到向上引用的情況:派生類引用或指標轉換為基類引用或指標被稱為向上強制轉換。 BrassPlus dilly("Annie Dill",493222,2000); Brass *pb = &dilly; Brass &rb = dilly;

在子呼叫的方法

在子類中呼叫父類的方法 class Vehicle: Country='China' def __init__(self,name,speed,load,power): self.name=name self.speed=speed se

Java 中父怎麼呼叫的方法?

父類能呼叫子類的方法嗎? 答:能。 怎麼做? ● 把子類傳遞到父類的有參構造中,然後呼叫。● 使用反射的方式呼叫,你使用了反射還有誰不能呼叫的?! ● 父類呼叫子類的靜態方法。 案例展示: pac

Python如何在子擴充套件父的property?

《python cookbook》8.8節討論子類擴充套件property時,一開始都暈了,思考了半天才勉強弄懂一點,趕快記下來。廢話不多說,先上程式碼: class Person: def __init__(self, name): self.name = name

Python中子怎樣呼叫方法

前面相關文章提過,python中類的初始化方法是__init__(),因此父類子類的初始化方法都是這個,如果子類不實現這個函式,初始化時呼叫父類的初始化函式,如果子類實現這個函式,就覆蓋了父類的這個函式,既然繼承父類,就要在這個函式裡顯式呼叫一下父類的__init__(),

Q:怎麼才能夠讓子強制呼叫的方法

遇到個問題:怎麼才能夠讓子類強制呼叫父類的方法? 例如:父類有個 /** * 釋放資源 */ public void release() { if (ui_WindowPlayer != null) { ui_WindowPlayer.rele

java this 子調父,父呼叫已覆蓋的方法及屬性(又一次理解)

之前一直以為 this關鍵字 是指呼叫者物件,但是這次才真正理解,this代表當前物件,但是指向呼叫者物件,其實就是多型的用法,如下所示:B 繼承了 A,在B 中呼叫A類的方法,在A 中用this 訪問成員變數和方法,此時,如果用this訪問成員變數,如下,this.s ,

引用呼叫的方法 反射和轉型

如果父類引用指向子類物件, Class A{} Class B extends A{ public void f(){ } } // A a = new B(); 引用要呼叫子類的方法,那麼有兩種方法: #### 向下轉型

物件呼叫方法包含子覆蓋的方法

如果A類中的fa和B類中的fb命名相同,均為f,則在B類物件呼叫f方法時,會出現邏輯錯誤,因為呼叫super.f(a,b)後,父類方法中return f(a,b%a);呼叫的將不是父類中自身的方法,而是子類中被覆蓋的方法。 子類型別物件呼叫子類覆蓋父類的方

我在OC工程中呼叫Swift的記錄

今天早晨在地鐵站倒黴的遇到一個潑婦,雖然我很不願意用這個詞來形容一個婦女,但確實找不到合適的詞來形容她,作為一個男人,我雖沒有溫文爾雅的舉止,也不是特別的紳士,但還是一個很講道理,很文明的人。本來想抽她幾巴掌吧,回頭想想和自己的形象不服,你和她講道理吧,和潑婦是沒有道理可講的,只能自認倒黴,好在我們社會和諧,

呼叫的@PostConstruct方法

如果一個類用@Service 或 @Component,那麼只需要用@PostConstruct修飾某個方法,該方法能在類例項化的過程中自動執行,相當於類的建構函式。同時,具備了建構函式不具備的功能。 @Service class Test{ @Pos

Java反射通過父物件呼叫的方法

在做網站開發的時候我們都會寫一個控制器,控制器的作用就是接收客戶端的請求,有時候為了控制訪問入口的唯一性,方便我們監控使用者訪問的資料;最近在抽時間寫一個底層轉發控制器請求的工具,說通俗一點就是首先我定義一個抽象類或者介面A(實現類A就標識為控制器),然後定義很

第三十一節 C++ 繼承之如何在派生呼叫被覆蓋的函式成員(方法)

#include <iostream> using namespace std; /*有些基類的方法在派生類被覆蓋,但有時我們需要呼叫基類的方法。 * 這裡提供了兩種方式去呼叫基類被覆蓋的

Python 在子呼叫方法詳解(單繼承、多層繼承、多重繼承)

測試環境: win7 64位 Python版本:Python 3.3.5 程式碼實踐: 1、在子類中通過“類名”呼叫父類的方法 class FatherA: def __init__(self): print('init

java多個子自動呼叫不包含的函式

問題描述 在用javafx做畢設的時候需要對形狀新增上下文選單。為了程式碼的封裝性,我選擇了新定義一個MyContextMenu繼承ContextMenu。在解決在Shape這種非Controller新增ContexMenu的問題後發現,雖然我能將之前的形狀物

c++繼承父的子,如何呼叫的同名函式?

子類呼叫父類的同名函式: 子類和父類返回值引數相同,函式名相同,有virtual關鍵字,則由物件的型別決定呼叫哪個函式。 子類和父類只要函式名相同,沒有virtual關鍵字,則子類的物件沒有

如何呼叫方法

一'子類繼承父類 並重寫了父類方法呼叫父類方法 1 zi() z= new   fu();   z.f類方法();或者super.父類方法();  //注意  super不能用在static修飾的方法中 如果父類非abstract class 也可以用fu f = new