防止重复的输入消息

时间:2015-11-04 01:01:16

标签: ios objective-c macos class cocoa

我有两个几乎完全相同的类,但是一个用于OS X,另一个用于iOS。然后我有一个像这样的头文件:

#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
#import "ClassForOSX.h"
#else
#import "ClassForIOS.h"
#endif

问题是因为这两个类都包含在项目中,xcode编译两者并且我在错误上有很多重复的条目,因为方法在两个类上都有相同的名称。

有没有办法防止类编译,即使它包含在项目中,除非该类是针对目标的?

是的我知道我可以在目标中包含/排除类,但是我正在处理双方数百个类和多个目标,这会产生很多最终会出错的包含/排除操作。我想知道代码中是否有一些解决方案,如果目标是正确的,可以允许类编译。

1 个答案:

答案 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