我有一个定义类接口的头文件:
// MyClass.h - included in all targets
//
@interface MyClass
+ (void) doThing;
@end
我有两个不同的实现文件 - 每个目标一个。
// MyClass+targetA.m - Only included in targetA
//
@implementation MyClass
+ (void) doThing { NSLog(@"targetA"); }
@end
// MyClass+targetB.m - Only included in targetB
//
@implementation MyClass
+ (void) doThing { NSLog(@"targetB"); }
@end
MyClass方法将用于主题化应用程序的外观。 MyClass上有几种方法和几个目标
答案 0 :(得分:1)
是的,它会正常工作,我采取了类似的方法,除了我使用了条件编译,一个目标公开私有功能,另一个目标暴露公共功能,但所有目标共享同一组源文件。 / p>
然而,我们两种方法的结果是相同的。
答案 1 :(得分:1)
所以我实际上更喜欢在目标设置中使用OTHER_CFLAGS
等自定义标记为其中一个设置TARGET_FREE
。然后在源代码中我可以写出类似的内容:
@implementation MyClass
+ (void) doThing {
#ifdef TARGET_FREE
// Code for one target
#else
// Code for another
#endif
}
@end