0

viewControllerに配列があり、別のviewControllerからその配列に書き込みたいので、その配列をグローバルとして定義しましたが、なんとか書き込むことができませんでした。

ViewController1.h

extern NSArray *xArray;
@property (nonatomic, retain) NSArray *xArray;

ViewController1.m

@synthesize xArray;
NSArray *xArray;
xArray = [[NSArray alloc] init];

ViewController2.m

#import "ViewController1.h"
NSArray *zArray = [NSArray arrayWithObjects:@"a",@"b",nil];
ViewController1.xArray = zArray;

次のエラーが発生します: プロパティ'xArray'がタイプ'ViewController1'のオブジェクトに見つかりません

4

1 に答える 1

0

解決策を見つけ、アプリデリゲートで配列を定義し、それを任意のクラスで使用します

AppDelegate.h

NSArray *xArray;
..
@property (nonatomic, retain) NSArray *xArray;
..
@synthesize *xArray;

ViewController1.m

NSArray *tmpArray1;
AppDelegate *mainDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
mainDelegate.xArray = tmpArray1;

ViewController2.m

NSArray *tmpArray2;
AppDelegate *mainDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
mainDelegate.xArray = tmpArray2;
于 2012-05-20T17:12:38.080 に答える