读取时的NSData将writeToFile不完全写入(NSData writeToFile not

2019-09-18 08:09发布

我正在写一个iPhone应用程序,可以让你浏览一个视图图像,而在另一个创建它们。

创建的图像将写入图像文件的视图文件夹使用以下代码(攻丝按钮时以关闭该视图):

[UIImagePNGRepresentation(image) writeToFile:path atomically:YES];

浏览器视图将使用加载图像:

UIImage *image = [UIImage imageWithContentsOfFile:path];

现在,这个工程完美9个10倍。 1总分10的图像没有被完全之前予加载它,以便它的下半将是黑色写入。 一切都将最终被写入 - 如果我在浏览器中重新加载图像,完整的图像显示。 我认为,这些东西将永远是在一个线程中是一致的。

我能做些什么来防止这种行为?

现在我想通过新创建的图像返回给浏览器但似乎只是一个黑客,因为浏览器将显示所有先前创建的影像。

Answer 1:

如果你确信图像被保存在与主(UI)线程writeToFile:atomically:和图像,然后被也被加载在主线程,那么它看起来像有与该方法保持其合同问题按时间完成操作的调用返回。 iOS版有时确实有错误,也许你找到了一个。

我也会注意到,但是,我已经看到了类似的问题,一种可能的方式出现时假设有关订单的取得在viewWillAppearviewDidDisappear等留下一个视图中显示另一个时被调用。 所以,我想也确保图像不会被保存在这些方法之一。

既然你说的问题,显示的图像是可见的一半 ,我猜想,这是不是这样,但是我有其他任何人有类似的问题,警示与订单的的操作。



Answer 2:

对于一个过程,时间不UI完成标准的解决方案是要打破它进入一个新的线程。 也许你应该创建一个单独的线程来保存图像,然后通过委托方法通知UI自我更新。



文章来源: NSData writeToFile not completely written when reading