- (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。那是为什么?
PS。 NSMutableArray在-(void)loadView
中完美运行。我在@interface .h文件中声明了NSMutableArray * arrayOfImage
答案 0 :(得分:0)
在这种情况下,给定的输出“NULL”的唯一方法是arrayOfImages
本身就是NULL
。
只有在arrayOfImages
被声明为弱变量时才可以这样做。
但正如@maddy指出的那样,你的代码都是错的:不要打电话给super,而是分配self.view
。或者使用viedDidLoad
代替(可能是你想要的)。
答案 1 :(得分:-1)
-(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]);
这样可以,但你只能看到1张照片。即数组0索引中的图片。
如果你想要显示所有内容,那么你必须应用一个循环。