我创建了一个 XCode 项目,其中包含 2 个目标和我在两个目标中实现的静态库。我的静态库的某些类需要根据我编译的目标略有不同。
我不知道如何正确地做到这一点。任何想法?
谢谢
我创建了一个 XCode 项目,其中包含 2 个目标和我在两个目标中实现的静态库。我的静态库的某些类需要根据我编译的目标略有不同。
我不知道如何正确地做到这一点。任何想法?
谢谢
他们需要以什么方式有所不同?(我的答案基于一个猜测,它可以通过在类中设置某种状态变量或通过自定义 init 方法来处理)
我建议您为需要具有不同行为的类创建某种形式的自定义初始化方法或实例变量。然后,您可以在每个目标的构建设置中使用用户定义的设置。
检查此问题和答案以获取更多信息:iphone: get User Defined variable in Target's setting by code?
基本上你可以有一个像这样的字符串的设置:“标准”,你从
FooBarClass.h
typedef enum { FooBarSettingNormal, FooBarSettingFast } FooBarSetting;
-(id)initWithSetting:(FooBarSetting)setting;
然后从代码中获取 buildsetting 中设置的变量并像这样初始化 FooBar 对象:
SomeViewController.m
NSNumber* fooBarSetting = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"FooBarSetting"];
FooBar * baz = [[FooBar alloc] initWithSetting:[fooBarSetting intValue]];
这使您可以在类中具有不同的行为,并使静态库与您正在使用的项目分开并独立于您使用的项目。
我希望你觉得这有点帮助:)