IOS使用C#预处理命令,多种SDK共存

当我们使用Unity接 91,XY助手等等SDK时候. 我们需要使用[DllImport("__Internal")] 来声明一个C++的方法调用.

不同的SDK总会有不同的方法. 我习惯是写成 XYSDK类,  Baidu91SDK类里面封装的各种[DllImport("__Internal")]声明的方法

问题就来了, 如果我们发布XY SDK,而91 SDK的方法并没有放在xcode工程里面. 所以造成编译不通过.我们就需要把91 C++封装好的方法放入工程当中.

我们可以使用预处理命令(来选择编译某些代码),这样就不需要发布XY,还要把91 C++封装好的方法放入到Xcode中编译啦

 

#define BaiDuSDK
//#define XYSDK
//如果我们需要发那个版本的SDK,就注释掉其他的#define.


using UnityEngine;
using System.Collections;


BaiDu91SDK
{
#if (BaiDuSDK)
    [DllImport("__Internal")]
    private static extern void 购买道具 ();
#endif

}

XYSDK
{
#if (XYSDK)
    [DllImport("__Internal")]
    private static extern void 打开悬浮窗口 ();
#endif
}

上面代码很简单  #define BaiDuSDK.  定义个预处理命令变量(它就是一个标记)

#if(BaiDuSDK){    //如果标记被定义

     //里面的代码将会被编译

 

这样就是实现代码选择编译O(∩_∩)O~

posted @ 2015-03-14 00:33  盘子脸  阅读(438)  评论(0编辑  收藏  举报