extern と継承の使用について質問があります。X-Code を使用して、Objective C で iOS アプリをコーディングしています。
クラスAから継承する2つの仮想クラスBとCがあります。
クラス A は、 #import "Constraints.h"のようにヘッダー ファイルに Constraints というクラスをインポートします。制約の.Hヘッダーでは、さまざまなextern NSInteger const VAR_NAME値が@interface Constraints : NSObjectの上 でインポートの下に宣言されています。.M 実装では、externs は、たとえば次のように初期化されますNSInteger const VAR_NAME = 1。繰り返しますが、これは imports の下、@implementation Constraints行の上に配置されます。このファイルは、アプリ全体のグローバル制約を保持することを目的としています。
ただし、これを行うと、XCode はビルド時に、制約ファイルで extern として宣言されたすべての変数について、クラス B と C のシンボルが重複していると mach-o-linker エラーを報告します。
そのため、親クラス A からクラス Constraints のインポートを削除し、代わりにクラス B と C に直接インポートしました。ただし、同じ問題が発生します。
私は数時間このテーブルに頭をぶつけてきました。どんな助けも大歓迎です。