我有两个几乎完全相同的类,但是一个用于OS X,另一个用于iOS。然后我有一个像这样的头文件:
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
#import "ClassForOSX.h"
#else
#import "ClassForIOS.h"
#endif
问题是因为这两个类都包含在项目中,xcode编译两者并且我在错误上有很多重复的条目,因为方法在两个类上都有相同的名称。
有没有办法防止类编译,即使它包含在项目中,除非该类是针对目标的?
是的我知道我可以在目标中包含/排除类,但是我正在处理双方数百个类和多个目标,这会产生很多最终会出错的包含/排除操作。我想知道代码中是否有一些解决方案,如果目标是正确的,可以允许类编译。
答案 0 :(得分:1)
使用目标最适合您的情况。但你可以在代码中做到这一点
注意在目标 - >构建设置的预处理器宏中添加或删除__MAC_OS_X_VERSION_MIN_REQUIRED
ClassForIOS.h文件
#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
#import <Foundation/Foundation.h>
@interface ClassForIOS : NSObject
// interface
@end
#endif
ClassForIOS.m文件
#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
#import "ClassForIOS.h"
@implementation ClassForIOS
// implementation code
@end
#endif
ClassForOSX.h文件
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
#import <Foundation/Foundation.h>
@interface ClassForOSX : NSObject
// interface
@end
#endif
ClassForOSX.m文件
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
#import "ClassForOSX.h"
@implementation ClassForOSX
// implementation code
@end
#endif