5

クラス インターフェイスを定義するヘッダー ファイルがあります。

// MyClass.h - included in all targets
//
@interface MyClass
+ (void) doThing;
@end

そして、ターゲットごとに 1 つずつ、2 つの異なる実装ファイルがあります。

// 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 にはいくつかのメソッドがあり、いくつかのターゲットがあります

4

2 に答える 2

1

そのため、実際には、それらのいずれかのOTHER_CFLAGSようにカスタム フラグを使用してターゲット設定でセットアップすることを好みTARGET_FREEます。そして、ソースで次のように書くことができます:

@implementation MyClass
+ (void) doThing {

#ifdef TARGET_FREE 
    // Code for one target
#else
    // Code for another
#endif

}
@end
于 2013-09-03T16:31:47.127 に答える