0

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 に直接インポートしました。ただし、同じ問題が発生します。

私は数時間このテーブルに頭をぶつけてきました。どんな助けも大歓迎です。

4

1 に答える 1

1

エラーを生成しているコードを投稿できますか? これは私には正しいように思えますが、通常はタイプミスが原因です。他の投稿を読んだことがありますが、人々が誤って .h ファイルの代わりに .m ファイルをインポートしただけで、通常このエラーが発生します。

于 2013-02-20T03:15:14.827 に答える