c++ - Adding functions to an existing Objective-C class raises error -
i'm writing c++ wrapper nsimage class , i'm having trouble additional functions wrote. here's brief summary:
nsimageextras.h
@interface nsimage (myextensions) -(nsstring*) myextrafunction; @end
nsimageextras.mm
#import "nsimageextras.h" @implementation nsimage (myextensions) -(nsstring*) myextrafunction { return @"hello world"; } @end
nsimagewrapper.h
class nsimagewrapper { public: // nsimage of type (nsimage*) nsimagewrapper(void* nsimage) {myimage = nsimage;} ~nsimagewrapper() {} cfstringref myextrafunction(); // cast (nsimage*) void* getnsimage() {return myimage;} private: void* myimage; };
nsimagewrapper.mm
#include "nsimagewrapper.h" #import "nsimageextras.h" cfstringref nsimagewrapper::myextrafunction() { return (cfstringref) [(nsimage*) myimage myextrafunction]; }
this compiles. when try call myextrafunction
error raised because function isn't found. if change import "nsimageextra.h"
import "nsimageextra.m"
works, i'd rather avoid adding .m files in imports.
any idea why happening?
thanks ahead.
you can try import nsimageextras.h in nsimagewrapper.h instead of nsimagewrapper.mm. need include subclass headers in header files.
Comments
Post a Comment