我希望有一个可以在我的 Objective-C 项目中访问的数组,我可以在必要时更改其内容。我的问题是,当我从不同的类调用数组时,我总是得到空值,这不是我想要的。
在我的 .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);
}
感谢所有为论坛帖子做出贡献的人!