“没有可见的@interface声明选择器”错误

时间:2013-03-06 23:35:31

标签: ios xcode uiimageview xcode4.5

我在视图控制器中插入了一个图像视图,但实际上并不知道如何在其上显示图像。

我试过了:

- (void)viewDidLoad
{
[super viewDidLoad];


id path = @"http://thestylishdog.com/wp-content/uploads/2009/07/cute-dog2.jpg";
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImageView *firstImage = [[UIImage alloc] initWithData:data cache:NO];
}

但后来它说'UIimage没有可见的@interface声明选择器initwithData:cache'

我尝试将此行添加到.h文件中但不起作用:

@property (nonatomic, retain) UIImageView *firstImage;

我知道最后一步是将.h create class分配给viewcontroller中的UIimage。

3 个答案:

答案 0 :(得分:2)

您可以尝试使用此代码从imageview

中的路径添加图片
 NSURL *url = [NSURL URLWithString:@"http://thestylishdog.com/wp-content/uploads/2009/07/cute-dog2.jpg"];
 NSData *data = [NSData dataWithContentsOfURL:url];
 UIImage *image = [UIImage imageWithData:data];
 imageView = [[UIImageView alloc] initWithImage:image];

如果您要通过GUI添加,请不要忘记将imageView显示为xib的插座,否则请将其添加到您的视图subview

答案 1 :(得分:1)

尝试[[UIImage alloc] initWithData:data];您可以使用NSCachedURLResponse进行缓存以进行回复。

答案 2 :(得分:0)

您可以使用此方法从网址加载图片:

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

但这会阻止你的应用,直到你的图片加载。在使用Web上的图像时,最好以异步方式加载图像。如果图像是在不同的线程中下载的,则用户可以继续与应用程序进行交互。您可以从Apple查看有关延迟加载图片的示例:LazyTableImages

或者您可以查看本教程以获取异步图像下载: UItables with downloaded images