2014-10-10 22 views
0

我目前正在網上學習幾個Swift類來學習這個新語法,但我覺得我碰到了一堵我無法弄清楚的牆。在Swift中調用自定義的Objective C方法?

我的問題是:我需要做些什麼來在swift中調用自定義的客戶端c方法?爲什麼不快速識別代碼來自哪裏?爲什麼我會遇到如下錯誤:「UIViewController沒有名爲'customMethod'的成員?」?這是一個進口問題嗎?

現在,你知道我的問題,這是爲什麼我要問,背景

我有一個Objective-C .m文件調用此方法:

- (void)configureMyApp 
{ 
// overriden by subclasses 
}  

那麼這一個:

- (void)addAppElement:(MyAppElement *)element 
{ 
    [self addAppElement atIndex:[self.elements count]]; 
} 

在我迅速的應用程序我已經設置了橋接報頭和進口.h文件到所述頭文件

我試圖通過這個快捷功能調用configureMyApp方法:

func configureMyApp() 
{ 

self.addAppElement... 
} 

但並不承認功能從我進口的客觀C文件來了,而且也不myswiftfile.swift認識addAppElement

的我會稱之爲obj-c會是這樣的:

- (void)configureMyApp 
{ 
[super configureMyApp]; 

[self addAppElement:.....]; 
} 

還有什麼我需要做的導入obj-c代碼?我可能會錯過什麼?

+1

您是否正確配置了橋接頭?請參閱[在Cocoa和Objective-C中使用Swift:在同一個項目中使用Swift和Objective-C](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#// apple_ref/DOC/UID/TP40014216-CH10-XID_76)。 – Rob 2014-10-10 21:07:26

+1

您是否已將這些方法添加到您的ViewController.h文件中? – ujell 2014-10-10 21:08:48

+0

是的,這些方法是在我的ViewController.h文件,我很積極的橋接頭配置正確,因爲我已經使用需要橋頭的代碼片段 – YichenBman 2014-10-10 21:13:16

回答

1

此錯誤:UIViewController does not have a member named 'customMethod'表示您正在嘗試對類型爲UIViewController的對象調用customMethod,而不是您的自定義子類UIViewController

+1

明白了!我忘了你需要更改子類 – YichenBman 2014-10-10 21:26:44

相關問題