必要に応じて内容を変更できる、Objective-C プロジェクト全体でアクセス可能な配列が必要です。私の問題は、別のクラスから配列を呼び出すと、常にnullになることです。それは私が望んでいることではありません。
私の.hファイルには
@interface MainScreen2 : UIViewController
@property (nonatomic, strong) NSMutableArray *Judith;
そして、私が持っている.mファイルのviewDidLoad関数で:
@interface MainScreen2 ()
@end
@implementation MainScreen2
@synthesize Judith;
- (void)viewDidLoad
{
self.Judith = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil];
[super viewDidLoad];
}
これでいいです。
別のクラスで私は持っています:
#import "MainScreen2.h"
@interface NewGame ()
@end
- (void)viewDidLoad
{
MainScreen2 *testJudith;
NSMutableArray *testJudithArray = [[NSMutableArray alloc]init];
testJudithArray = [testJudith.Judith mutableCopy];
NSLog(@"Jud test: %@", [testJudith.Judith objectAtIndex:1]);
}
は、NSLog
このポイントに対して null を返します。これは、MainScreen.h ファイルから Judith 配列を呼び出すときに、まだ読み込まれていないため、この時点では空であるためですか?
もしそうなら、誰かが配列をどこに置くべきかを手伝ってくれるので、それを呼び出すときに元の内容を保持できますか?
編集:4月30日
このページに親切に寄せられた提案の組み合わせを使用して、問題を整理し、機能するようになりました。
I changed the code to the following:
- (void)viewDidLoad
{
MainScreen2 *testJudith = [[MainScreen2 alloc]init];
[testJudith viewDidLoad];
NSString *test = [testJudith.Judith objectAtIndex:1];
NSLog(@"Jud test: %@", test);
}
フォーラムの投稿に貢献してくれたすべての人に感謝します!