如何将图像加载到视图中?

时间:2014-05-06 13:06:21

标签: ios image ios7

我对ios很新。我试图将图片加载到我的视图中。这是我的代码:

-(void)loadView
{
    UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 40, 40, 40)];
    UIImage *image = [UIImage imageNamed:@"test.jpg"];
    imageHolder.image = image;
    [imageHolder sizeToFit];
    [self.view addSubview:imageHolder];
}

在我的名为Test的类中,它是UIViewController的子类。 test.jpg位于同一目录中。当我跑步时,我在这一行收到错误:

UIImage *image = [UIImage imageNamed:@"test.jpg"];

Thread1:EXC_BAD_ACCESS(code=2,address=0xbasd)

我犯了错误?

我正在使用ios7和xcode 5

2 个答案:

答案 0 :(得分:1)

我在您的代码中看到了问题。它会导致无限循环。 loadView - 当视图为空并且您负责创建设置视图时,将调用此方法。 当您访问self.view时,您的视图为空,并且将再次调用loadView方法,并且它将以无限循环结束。

UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 40, 40, 40)];
UIImage *image = [UIImage imageNamed:@"test.jpg"];
imageHolder.image = image;
[imageHolder sizeToFit];
self.view = [[UIView alloc] initWithFrame:frame];
[self.view addSubview:imageHolder];

图像位于您的文件结构中并不重要。将图像添加到项目时。 您可以通过以下方式执行此操作 - 将图像拖放到项目中。或者 - "将文件添加到项目" 添加图像时,应选择要添加到的目标项目。

答案 1 :(得分:0)

我认为您应该将代码放在-(void)viewDidLoad方法中,而不是使用loadView方法。顺便说一句,在Xcode5中,您需要右键单击项目并“将文件添加到项目”以添加此图像文件。

-(void)viewDidLoad
{
    [super viewDidLoad];
    UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 40, 40, 40)];
    UIImage *image = [UIImage imageNamed:@"test.jpg"];
    imageHolder.image = image;
    [imageHolder sizeToFit];
    [self.view addSubview:imageHolder];
}