- (void)loadView
{
[super loadView];
arrayOfImages = [[NSMutableArray alloc]initWithObjects:@"11.jpg",@"22.jpg",@"33.jpg", nil];
UIImageView *awesomeView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[awesomeView setImage :[UIImage imageNamed:[arrayOfImages objectAtIndex:0]]];
awesomeView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:awesomeView];
NSLog(@"%@",[arrayOfImages objectAtIndex:0]);
}
当我把NSMutableArray
放在-(void)viewDidLoad
时,UIImageView
显示无,NSLog
显示NULL。为什么呢?
p。NSMutableArray在-(void)loadView
中工作得很好。我已经在@interface .h文件中声明了NSMutableArray *arrayOfImage
在这种情况下,给定的唯一可能输出"NULL"的方法是arrayOfImages
本身就是NULL
。
这只有在将arrayOfImages
声明为弱变量时才有可能。
但是正如@maddy指出的,你的代码都是错误的:不要调用super,而是分配self.view
。或者使用viedDidLoad
代替(可能是您在这里想要的)。
-(void)loadView
{
[super loadView];
arrayOfImages = [[NSMutableArray alloc]initWithObjects:[UIImage imageNamed:@"11.jpg"],[UIImage imageNamed:@"22.jpg"],[UIImage imageNamed:@"33.jpg"], nil];
UIImageView *awesomeView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[awesomeView setImage :[UIImage imageNamed:[arrayOfImages objectAtIndex:0]]];
awesomeView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:awesomeView];
NSLog(@"%@",[arrayOfImages objectAtIndex:0]);
这将工作,但你将只能看到一张图片。在数组的第0个索引中显示图片
如果你想显示所有,那么你必须应用一个循环。