I think you are right, I was just trying to avoid a stack call going from C -> ObjC (c-interface) then to true ObjC with access to class data.
I have been encapsulating all the information into a single structure passed as a pointer for as many calls as I can to reduce the overhead of making three calls..
But I can live with it, other options that involve method caching etc seem a bit much.