我正在开发一个框架项目,我有一些设置。根据这些设置,某些行为将发生变化。但这将由框架用户决定。比方说我在框架中有一个方法,如下:
+ (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:对不起代码片段,宏条件在这里不起作用。
答案 0 :(得分:0)
我可以根据我的RD给你一些建议:
<强>我。创建一个Singelton类到.Framework项目:
loss = ln(0.6) + ln(1-0.2) + ln(0.9)
项目管理器头文件只有在您生成为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");
}
II。 确保您已将此标头文件选为公共文件:
Build Phases-&gt; Headers将ProjectManager.h从Project拖到Public。
III。演示用法:
//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
希望这会给你一些处理框架类的想法。