0

こんにちは、Objective C を学習したばかりで、自分で練習するための演習を行っています。ここには、「メイン クラス」と「サブ クラス」の 2 つのクラスがあります。私が必要としていたのは、「メイン クラス」のすべてのインスタンスを取得し、それを配列に入れることです。「サブクラス」でも使いたいと思いました。以下に小さな例を示します。

@interface mainClass : NSObject
static NSArray *instanceObj;
@end
@implementation mainClass

//Here i used the designated initializer to initialize and add the instance to the     Array
@end


@interface subClass:mainClass
@end
@implementation subClass

//Here i want to use the Array to get instances of mainClass.
@end

上記の例のようにすると、静的配列が使用されていないという警告が表示され、配列からデータを取得するとゼロになります。また、「メインクラス」の実装ファイルで静的配列を宣言してみましたが、「サブクラス」で配列を使用できません。解決策を教えてください。

友よ、この質問はそれほど重要ではありませんが、物事を理解するのに役立つかもしれません. ですから、概念を理解するのを手伝ってください。この質問を完全に削除するかもしれません。ありがとうございました

4

1 に答える 1

1

いくつかの問題:

  1. staticを の外側に移動し、@interfaceの上の .m ファイルに移動します@implementation

  2. NSMutableArray.ではなく.にする必要があることは明らかですNSArray

  3. その配列にオブジェクトを追加すると、それらのオブジェクトへの強い参照が確立され、配列から削除するまで解放されないことに注意してください。

余談ですが、 andではなくandを使用して、Cocoa の命名規則に準拠することもできます。意味のある名前を使用することをお勧めします。MainClassSubClassmainClasssubClass

于 2013-10-08T11:33:52.287 に答える