Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Can';是否从Url将UIImage设置为UIImageView?_Iphone_Ios_Xcode_Cocoa Touch - Fatal编程技术网

Iphone Can';是否从Url将UIImage设置为UIImageView?

Iphone Can';是否从Url将UIImage设置为UIImageView?,iphone,ios,xcode,cocoa-touch,Iphone,Ios,Xcode,Cocoa Touch,我无法理解为什么无法从下面的示例中设置uimageview from url: NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://a4.mzstatic.com/us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"]]; UIImage *image = [UIImage imageWithData:data]; self.imgAlbum1 = [[

我无法理解为什么无法从下面的示例中设置uimageview from url:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://a4.mzstatic.com/us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"]];
UIImage *image = [UIImage imageWithData:data];

self.imgAlbum1 = [[UIImageView alloc] initWithImage:image];
它可以通过浏览图像正常工作,IBOutlet也可以,即使从ImageName设置uiimage也不起作用

我试着在故事板中重现控制,但什么都没有


任何提示都值得欣赏

大概
imgAlbum1
是您现有图像视图的一个出口

最后一行尝试创建一个新的图像视图,而不在任何地方显示它,您可能需要:

self.imgAlbum1.image = image;

大概
imgAlbum1
是现有图像视图的一个出口

最后一行尝试创建一个新的图像视图,而不在任何地方显示它,您可能需要:

self.imgAlbum1.image = image;

编辑:如果您的
imgAlbum1
是一个
IBOutlet
,则可能将其设置为弱属性。如果是这样,图像将永远不会显示。为了使用alloc,您的属性必须是强属性

由于您可能使用的是弱插座,请尝试使用另一张海报建议的
self.imgAlbum1
。不过,这会起作用的原因是,您只是更新了图像,而不是实际的
imageView
对象(弱属性,当您重新分配时,实际上会完全破坏对象)

这就是我所做的,我测试过,效果很好:

NSString *encodedString = [[NSString stringWithFormat:@"%@", @"us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://a4.mzstatic.com/%@", encodedString]];

NSData *data = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [[UIImage alloc] initWithData:data];

UIImageView *imgAlbum1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imgAlbum1];
因此,我的问题是:

  • 您是否为imgAlbum1使用弱属性(即:
    @property(非原子,弱)IBOutlet*imgAlbum1)
    ?如果是这样,不要将其设置为strong,只需使用
    self.imgAlbum1.image=image
  • 您是否已确保与正在使用的设备建立internet连接
  • imgAlbum1
    是否是
    IBOutlet
    UIImageView
    ?如果是,它是隐藏的(或被图层隐藏的)
  • 您在右视图控制器上吗
等等


否则,代码看起来很好。

编辑:如果您的
imgAlbum1
是一个
IBOutlet
,则可能将其设置为弱属性。如果是这样,图像将永远不会显示。为了使用alloc,您的属性必须是强属性

由于您可能使用的是弱插座,请尝试使用另一张海报建议的
self.imgAlbum1
。不过,这会起作用的原因是,您只是更新了图像,而不是实际的
imageView
对象(弱属性,当您重新分配时,实际上会完全破坏对象)

这就是我所做的,我测试过,效果很好:

NSString *encodedString = [[NSString stringWithFormat:@"%@", @"us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://a4.mzstatic.com/%@", encodedString]];

NSData *data = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [[UIImage alloc] initWithData:data];

UIImageView *imgAlbum1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imgAlbum1];
因此,我的问题是:

  • 您是否为imgAlbum1使用弱属性(即:
    @property(非原子,弱)IBOutlet*imgAlbum1)
    ?如果是这样,不要将其设置为strong,只需使用
    self.imgAlbum1.image=image
  • 您是否已确保与正在使用的设备建立internet连接
  • imgAlbum1
    是否是
    IBOutlet
    UIImageView
    ?如果是,它是隐藏的(或被图层隐藏的)
  • 您在右视图控制器上吗
等等


否则,代码似乎很好。

在第一次调用后,您是否尝试打印出
数据
?是的,nsdata打印良好在第一次调用后,您是否尝试打印出
数据
?是的,nsdata打印良好不确定发生了什么,我甚至无法像uibutton标题那样实际设置其他控件。连续17小时编程不确定我是否错过了一些明显的东西。。。我将尝试创建一个新的viewcontroller,然后再试一次。顺便说一句,我以前尝试过,但没有成功。我创建了一个全新的项目,现在它运行良好,谢谢。我不知道发生了什么,我甚至不能像uibutton标题那样实际地设置其他控件。连续17小时编程不确定我是否错过了一些明显的东西。。。我将尝试创建一个新的viewcontroller,然后再试一次。顺便说一句,我以前尝试过,但没有成功。我创建了一个全新的项目,现在工作正常,谢谢