-1

私のxcodeプロジェクトでは、次を使用しようとするたびに:

#import "Class1.h"
NSMutableArray *array;
@implementation Class2
Class1 *class = [Class1 new];
array = class.array;

Class1に配列と呼ばれるものがあると仮定します。Xcodeは、エラーがないようにビルドします。ただし、実行すると、クラッシュしてエラーが発生する前に、class1の画面が点滅します。他のコードを修正しました。エラーは次のとおりです。

[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array

申し訳ありませんが、Obj-Cは初めてです。

4

2 に答える 2

0

コードの設計。デザインパターン。これらを最初に決定する必要があり、その後はコーディングが簡単になります。

ご覧のとおり、グローバル配列を作成しています!!! これは良くありません。共有配列が必要な場合は、SingletonClass/SharedClass を使用します。

またはNSMutableArray *array;.hファイルに入れて alloc+init してアクセスする必要があります。

array = [class array];

この行は明確ではなく[class array]、Class1 の配列を返すため、Class1 の配列を割り当てる Class2 に NSArray が必要です。

Class2 がプロパティとして配列を持っている場合self.array=[class array];

于 2012-12-22T05:07:33.850 に答える
0

配列を Class1 のプロパティにしたい場合は、Class1.h ファイルで次のようにする必要があります。

@interface Class1

@property (nonatomic, strong) NSMutableArray *array;

@end

次に、投稿したコードのように配列にアクセスできます。

于 2012-12-22T04:31:31.337 に答える