2017-04-10 5 views
1

Ich habe eine Objective-C-Methode wie folgt aus:Klasse Funktion von einer anderen Klasse namens

-(void)findFiles{ 
} 

Es arbeitet fine.But Ich brauche diese Methode in Swift class.I nennen getan haben:

var instanceOfCustomObject:DriveListTableViewController = DriveListTableViewController() 

und jetzt kann ich die Methode wie folgt verwenden:

instanceOfCustomObject.find() 

Aber es funktioniert nur, wenn ich es in viewDidLoad platzieren. Gibt es einen Weg, den ich es auf Knopfdruck nennen kann? Ich habe Taste erstellt

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() 
     } 

Aber es funktioniert nur noch, wenn ich es in viewDidLoad platzieren. Bitte hilf mir! Gibt es eine andere Möglichkeit, um Swift-Datei von Objective-C-Datei aufzurufen?

+1

Was meinst du mit "es funktioniert nur ..." - Clarify "funktioniert". Sie erstellen eine Instanz von 'DriveListTableViewController', stellen diese jedoch scheinbar nicht dar, daher rufen Sie wahrscheinlich die Methode auf, aber es gibt kein Ergebnis, da der View-Controller nicht angezeigt wird. – Paulw11

+0

Sie können ein statisches Dienstprogramm mit der Methode erstellen, die Sie benötigen, warum instanziieren Sie einen ViewController, nur um eine Methode zu verwenden? Sie sollten einen View Controller nur instanziieren, wenn Sie beabsichtigen, ihn darzustellen oder dem Benutzer anzuzeigen. –

+0

@ Paulw11Ich meine, wenn ich "instanceOfCustomObject.find()" in viewDidLoad setzen, wird die Funktion nur einmal aufgerufen. Aber ich muss diese Funktion mehrere Male mit der Schaltfläche aufrufen. Wie stelle ich sie vor? Dies wird in Swift-Datei aufgerufen. Die - (void) findFiles { } befindet sich in Objective-C-Datei ... Wie nenne ich es sonst? –

Antwort

1

Erklären Sie Ihre var instanceOfCustomObject außerhalb der viewDidLoad Methode (d. H. Innerhalb der Klasse aber außerhalb der Methode).

+0

Es ist bereits nicht in ViewDidLoad-Methode deklariert. –

+0

@KirillMIlititskiy Ok, gut! Aber ist es 'find()' oder 'findFiles()'? –

+0

Ist es wichtig? Es ist der Name. Es könnte ein beliebiger Name sein. –

Verwandte Themen