将Framework项目的编译器标志依赖项添加到主项目中

时间:2017-03-24 04:07:54

标签: ios objective-c xcode compiler-flags

我正在开发一个框架项目,我有一些设置。根据这些设置,某些行为将发生变化。但这将由框架用户决定。比方说我在框架中有一个方法,如下:

+ (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:对不起代码片段,宏条件在这里不起作用。

1 个答案:

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

希望这会给你一些处理框架类的想法。