2017-04-10 122 views
1

我有一個Objective-C的方法是這樣的:從另一個類叫做類函數

-(void)findFiles{ 
} 

據工作fine.But我需要調用在斯威夫特class.I這種方法做了:

var instanceOfCustomObject:DriveListTableViewController = DriveListTableViewController() 

,現在我可以用這樣的方法:

instanceOfCustomObject.find() 

但它只能在,如果我把它放到viewDidLoad中。 有沒有一種方法可以通過單擊按鈕來調用它? 我已創建按鈕

let button:UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50)) 
     button.backgroundColor = .black 
     button.setTitle("Button", for: .normal) 
     button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside) 
     self.view.addSubview(button) 

func buttonClicked() { 
     print("Button Clicked") 
     instanceOfCustomObject.findFiles() 
     } 

但如果我把它放到viewDidLoad中它仍然只適用。請幫幫我!是否有任何其他方式使它從Objective-C文件中調用Swift文件?

+1

你是什麼意思「它只能運作...」 - 澄清「作品」。您正在創建'DriveListTableViewController'的實例,但顯然不會以任何方式顯示它,因此您可能正在調用該方法,但由於未顯示視圖控制器,因此它沒有任何結果。 – Paulw11

+0

你可以用你需要的方法創建一個靜態工具,爲什麼你只是使用一個方法實例化一個ViewController?如果您打算向用戶展示或顯示視圖控制器,則應僅實例化視圖控制器。 –

+0

@ Paulw11I我的意思是如果我把「instanceOfCustomObject.find()」放入viewDidLoad函數只調用一次。但我需要用按鈕多次調用該函數。我該如何展示它?這在swift文件中被調用。 - (void)findFiles {0}位於Objective-C文件中...我怎麼稱呼它呢? –

回答

1

viewDidLoad方法之外聲明您的var instanceOfCustomObject方法(即在類別之內但在以外的方法)。

+0

它已經聲明不在viewDidLoad方法中。 –

+0

@KirillMIlititskiy好,好!但它是'find()'或'findFiles()'? –

+0

重要嗎?它的名字。它可以是任何名字。 –