私は2つのobjc .mクラスを持っています。私たちはcontroller1.mとcontroller2.mを呼び出します。コンパイルエラーの原因となる異なるクラスの同じ名前のインスタンス変数
controller1.m
@implementation controller1
UIAlertController *alertController;
//more code
@end
controller2.m
@implementaion controller2
UIAlertController *alertController;
//more code
@end
:controller1.mとcontroller2.mの両方で、私は、このような何かをUIAlertControllerのインスタンスを持っています
プロジェクトをビルドしようとすると、エラーが発生します
リンカコマンドは終了コード1(呼び出しを参照するには、-v使用)
に失敗し、エラー・ログには、私が今のインスタンス変数の名前を変更し、この
duplicate symbol _alertController in:
/Users/.../Xcode/DerivedData/AppName-cdtbqibmmbsosrdeyqughefeazaa/Build/Intermediates/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/controller1.o
/Users/.../Xcode/DerivedData/AppName-cdtbqibmmbsosrdeyqughefeazaa/Build/Intermediates/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/controller2.o
のように見えますそれが働いた...私はなぜこれをしなければならないのですか? Xcodeは、これらの変数が(名前のために)同じ方法で使用されていることを認識していますし、それらをグローバルに宣言する必要がありますか?
プロパティとしてインターフェイスに宣言します。 – danh
@ダンああ、大丈夫。しかし、それはなぜですか? [私を許して、私は目的-cでかなり新しい] –