使用它从应用程序更改Objective-C SDK设置

时间:2017-06-25 15:35:17

标签: objective-c sdk

我有一个关于使用它从应用程序修改SDK设置的问题。

我有一个自定义SDK,在执行某些操作时会打印到日志中。我希望此SDK的用户能够打开/关闭日志记录。我使用NSLog作为记录器。

我已经尝试为此设置一个预处理器宏,正如stackoverflow中多次解释的那样做:

#ifdef SHOWLOG
#   define SLog(fmt, ...) NSLog((fmt), ##__VA_ARGS__);
#else
#   define SLog(...)

#endif

然后期望用户设置一个名为“-DSHOWLOG”的编译标志

这不起作用,因为使用SDK的人将拥有SDK的编译版本。

还有哪些方法可以从使用它的应用程序更改SDK的配置? 环境变量是一个不错的选择吗?

1 个答案:

答案 0 :(得分:1)

也许我误解了这个问题,所以我猜测并提供这个答案,希望它有所帮助:

  1. 在SDK中创建您查询的设置,以控制SDK的行为方式。这些设置可以存储在共享/单一对象中,在功能(即C函数)API后面,甚至只是SDK(不是公开记录的)全局变量。
  2. 提供改变这些设置值的公共API。
  3. 所以在问题中提到的情况下,你需要一个SDK内部的" show log"设置和公共API来设置它。

    HTH