0
- (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)viewDidLoadUIImageView不显示任何内容并NSLog显示 NULL。这是为什么?

附言。NSMutableArray 在-(void)loadView. 我在@interface .h 文件中声明了 NSMutableArray *arrayOfImage

4

2 回答 2

0

在这种情况下,给定的输出“NULL”的唯一方法就是它arrayOfImages本身NULL

这只有在arrayOfImages声明为弱变量时才有可能。

但是正如@maddy 指出的那样,您的代码全错了:不要调用 super,而是 assign self.view。或者viedDidLoad改用(可能是你想要的)。

于 2014-08-18T06:50:59.063 回答
-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的图片。

如果要显示所有内容,则必须应用循环。

于 2014-08-18T05:52:58.897 回答