2009-03-03 6 views
7

Ich habe eine c-style-Funktion in eine objective-c-Methode geändert. Wie benutze ich es als Methode?Aufruf einer Obj-c-Methode mit einem Parameter

NSString* myfunc(int x) 

     is now: 

    - (NSString *)myFuncWithParam:(int)x 


c code: myString = myfunc(x); // works 

obj-c code: myString = myFuncWithParam(x); // fails to compile. 

Von einem der Antworten: myString = [object myFuncWithParam: x];

In diesem Fall würde was "Objekt" sein?

+0

Sie sollten den Titel Ihrer Frage wahrscheinlich so bearbeiten, dass Sie "eine objective-C-Methode mit einem Parameter aufrufen". – notnot

+0

Ich habe meine Antwort aktualisiert, um zu beschreiben, welches Objekt ... Sie wollen vielleicht etwas über objektorientierte Programmierung lernen, bevor Sie mit Obj-C fortfahren, da es ein sehr wichtiges Konzept ist. –

+0

Sie können die Syntax nicht einfach ändern und erwarten, dass prozeduraler C-Code plötzlich als Objective-C arbeitet. Das ist wie "o" an alle deine Wörter anhängen und sich vorstellen, dass du Spanisch sprichst. Sie müssen tatsächlich Objective-C lernen. – Chuck

Antwort

13

myString = [object myFuncWithParam:x];

Wo Objekt ist das Objekt, das die Methode hat Sie anrufen. Wenn Sie es vom selben Objekt aus aufrufen, verwenden Sie 'selbst'. This tutoria Ich könnte Ihnen beim Lernen von Obj-C helfen.

0

Sie benötigen die eckige Klammer "message" Syntax:

myString = [myObject myFuncWithParam: value];

0

Off topic/Greises Geschwafel:

Einmal, als ich langweilig war, habe ich versucht, eine Obj-C-ähnliche Syntax für C++ mit Überlastung Operator zu erstellen. Ich glaube, dass ich in der Lage war, zu arbeiten

myString = myObject[myFuncWithParam](value); 

zu bekommen.