在设备上显示图像时出现问题

Posted

技术标签:

【中文标题】在设备上显示图像时出现问题【英文标题】:Trouble Displaying Images On Device 【发布时间】:2013-02-17 03:36:27 【问题描述】:

我正在开发我的第一个 ios 应用程序。该应用程序通过 php 网页从数据库下载并显示数据。这一切都很好。我还从同一个 Web 服务器抓取图像以显示在 UIImageView 中。这一切都在模拟器上运行良好。

在我的测试设备(3GS)上,一切正常,除了我无法将下载的图像显示在我的 UIImageView 中。

如果没有互联网连接,我可以在模拟器和设备上显示我包含在应用程序包中的备用图像。

// Inside My data class Implementation
- (void)setUpTheData

--- other code ---

NSURL *myImageURL = [NSURL URLWithString:myImageURLString];
NSData *myImageRawData = [NSData dataWithContentsOfURL:myImageURL];
self.myImageData = myImageRawData;



- (NSData*)getTheImageData

    return _myImageData;


// Inside my viewDidLoad
UIImage *theImage = [UIImage imageWithData:[theRemoteData getTheImageData]];
_testImage.image = theImage;

我对比了模拟器和设备的图像数据,它们是相同的。

【问题讨论】:

【参考方案1】:

试试用 viewDidAppear 代替 viewDidLoad 吧?

【讨论】:

还要仔细检查任何后台进程代码,因为 UI 更新需要在主线程上进行。有什么异步返回可能导致这种情况的吗?不确定这与它有什么关系,但是当我遇到像这样莫名其妙的奇怪事情时,我发现它通常与线程或同步性有关。 谢谢蒙特。你的第一个建议没有奏效。回到绘图板。我会考虑你的其他建议。【参考方案2】:

我在数据类的 imageData 属性中设置了一个弱指针。更改为 strong 解决了我的问题。

【讨论】:

以上是关于在设备上显示图像时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 文件管理器显示图像时出现问题。路线问题

尝试在 Windows Phone 上显示相机胶卷中的图像时出现跨线程异常

使用imshow(OpenCV)显示图像时出现问题[重复]

尝试显示图像“已阻止:其他”时出现以下错误

显示图像列表时出现应用小部件问题

从 iOS 应用程序向 Chromecast 发送本地图像时出现问题