فراخوانی توابع Objectiv-c در ++C
خیلی از امکاناتی که معمولاَ برای پلتفرم IOS وجود دارد شاید هنوز از طریق cocosقابل دسترسی نباشد و به همین خاطر گاها نیازمند فراخوانی توابع Objectiv-c در داخل کد اصلی بازی که به زبان ++C است می شویم .
پیاده سازی این امکان به مراتب ساده تر از پیاده سازی توسط جاواست چون سی پلاس پلاس و آبجکتیو سی رابطه خانوادگی خوبی با هم دارند و اصولاَ بهتر با هم کنار خواهند آمد .
برای این منظور نیازمند دو فایل با پسوند های h. و mm. هستیم که در یکی رابط کلی کلاس و در دیگری توبع مورد نیاز را تعریف می کنیم .
به عنوان مثال با ایجاد فایل های callNative.h و callNative.mm به صورت زیر می توان به توابع مورد نیاز دسترسی داشت .
فایل CallNative.h شامل :
class callNative{ public: static void objectiveC_call(); };
و فایل callNative.mm به صورت زیر خواهد بود.
void callNative::objectiveC_call() { //your objective c code here NSLog(@"Hello World"); }
و بعد کافی است که در فایل ++C فایل callNative.h را به صورت معمولی فراخوانی و از آن استفاده کرد
#include"callNative.h"
و جهت فراخوانی تابعی که استفاده کرده بودیم به صورت زیر عمل کنیم
void HelloWorld::obCCalling() { //calling objective c code callNative::objectiveC_call(); }