将Framework项目的编译器标志依赖项添加到主项目中
问题描述:
我正在研究一个框架项目,其中有一些设置。基于这些设置,一些行为会改变。但是这将由框架用户决定。对于说我有一个方法框架,像波纹管:将Framework项目的编译器标志依赖项添加到主项目中
+ (void)printCompilerFlag {
if (OC_LOG_ENABLED == 0)
NSLog(@"OC_LOG_ENABLED disabled");
else
NSLog(@"OC_LOG_ENABLED enabled");
}
当用户通过添加OC_LOG_ENABLED标志添加此框架到他们的项目,他们应该能够与他们的项目来处理这个= 0或1.
任何建议或手头教程是非常可观的。
谢谢。
n.b:抱歉代码段,宏条件在这里不起作用。
答
我可以给你根据我的RD一些建议:
我。创建一个Singelton类.Framework项目:一旦你为框架产生
// ProjectManager.m file:
+ (instancetype)sharedManager
{
static ProjectManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [ProjectManager new];
});
return manager;
}
//Singleton function setter:
- (void)setOs_log_enabled_status:(BOOL)os_log_enabled_status
{
_os_log_enabled_status = os_log_enabled_status;
if (_os_log_enabled_status == false)
{
NSLog(@"OC_LOG_ENABLED disabled");
}
else
{
NSLog(@"OC_LOG_ENABLED enabled");
}
}
//Or
- (void)printCompilerFlag
{
if (_os_log_enabled_status == 0)
NSLog(@"OC_LOG_ENABLED disabled");
else
NSLog(@"OC_LOG_ENABLED enabled");
}
项目经理的头文件只能拿到可见。
//ProjectManager.h file
@interface ProjectManager : NSObject
+ (instancetype)sharedManager;
//os_log bool value to handle your requirement
@property (nonatomic,assign) BOOL os_log_enabled_status;
//function
- (void)printCompilerFlag;
@end
ii。 确保你已经选择这个头文件作为公共文件:
构建阶段 - >标题拖动ProjectManager.h从项目到公共。
iii。演示使用:
//Appdelegate.m file
#import <YourFramework/ProjectManager.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Depends on user status false or true
[ProjectManager sharedManager].os_log_enabled_status = false;
//or
[ProjectManager sharedManager].os_log_enabled_status = true;
//After setting BOOL value call this function
[ProjectManager sharedManager] printCompilerFlag];
return true;
}
@end
希望这会给你一些想法来处理框架类。
谢谢你的时间。其实我不想用任何参数来做这件事。我想通过编译器标志来处理,显然我会导入框架。 – makboney