我想要一個可在整個Objective-C項目中訪問的數組,其內容可以在必要時進行更改。我的問題是,當我從另一個類調用數組時,我總是得到null,這不是我想要的。從不同的類調用時無法訪問NSMutableArray的內容
在我.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];
}
,這是好的。
在一個單獨的I類有:
#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
返回空值對於這一點。這是因爲當我從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);
}
感謝所有對論壇帖子的貢獻!
您不應該調用'-viewDidLoad' direc真的,你應該讓它被'-loadView'調用。直接調用可能會導致問題。 – 2012-05-01 19:37:51