How to call an Objective-C Method from a C Method?

后端 未结 5 1029
慢半拍i
慢半拍i 2020-11-28 06:44

I have an Obj-C object with a bunch of methods inside of it. Sometimes a method needs to call another method inside the same object. I can\'t seem to figure out how to get

5条回答
  •  天涯浪人
    2020-11-28 07:32

    I know your question is already answered by Aviad but just to add to the info since this is not unrelated:

    In my case I needed to call an Objective-C method from a C function that I did not call myself (a Carbon Event function triggered by registering a global hotkey event) so passing self as a parameter was impossible. In this particular case you can do this:

    Define a class variable in your implementation:

    id thisClass;
    

    Then in your init method, set it to self:

    thisClass = self;
    

    You can then call Objective-C methods from any C function in the class without the need to pass self as a parameter to the function:

    void cMethod([some parameters]) {
        [thisClass thisIsAnObjCMethod];
    }
    

提交回复
热议问题