小编imn*_*mnk的帖子

导入前框架的条件编译检查


在导入和使用该框架之前,我正在寻找一种方法来检查框架是否存在和/或是否定义了类.具体来说,框架是资产库.

目前,我能够使用Core Data框架执行此操作,因为该框架有一个名为CoreDataDefines.h的文件,它提供了预处理程序指令_COREDATADEFINES_H.这允许我简单地检查这样的定义:

#ifdef _COREDATADEFINES_H
#import <CoreData/CoreData.h>

// do something with Core Data

#else

// do something without using Core Data

#endif
Run Code Online (Sandbox Code Playgroud)


遗憾的是,Assets Library没有提供清晰的定义头文件,因此我正在寻找一种方法来编写我自己的#define语句,该语句可以在导入框架之前检查框架是否存在,就像我之前为Core Data所做的那样.

我试过这个:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
// import assets library if defined !
#define ASSETSLIBRARY_DEFINE    (NSClassFromString(@"ALAsset") != nil)
#if ASSETSLIBRARY_DEFINE
#import <AssetsLibrary/AssetsLibrary.h>
#endif
#endif
Run Code Online (Sandbox Code Playgroud)

......但没有运气.
编译器告诉我"Token不是预处理器子表达式中的有效二元运算符".


任何帮助总是非常感谢.

c conditional objective-c ios

14
推荐指数
1
解决办法
6711
查看次数

标签 统计

c ×1

conditional ×1

ios ×1

objective-c ×1