iOS:dispatch_async和UIImageWriteToSavedPhotosAlbum

iOS:dispatch_async和UIImageWriteToSavedPhotosAlbum,第1张

概述只是学习如何在线程之间分配任务,或者异步调度.我知道任何“触及”视图的 *** 作都必须在主线程上完成.那么:UI ImageWriteToSavedPhotosAlbum?我认为这可以在后台线程上完成,但我错了吗? 此外,如果它应该在后台线程上完成,下面这两个调用之间是否有区别,因为一个保存UIImage而另一个从视图中保存UIImage? UIImageWriteToSavedPhotosAlbum( 只是学习如何在线程之间分配任务,或者异步调度.我知道任何“触及”视图的 *** 作都必须在主线程上完成.那么:UI ImageWritetoSavedPhotosAlbum?我认为这可以在后台线程上完成,但我错了吗?

此外,如果它应该在后台线程上完成,下面这两个调用之间是否有区别,因为一个保存UIImage而另一个从视图中保存UIImage?

UIImageWritetoSavedPhotosAlbum(_someUIImage,nil,nil);UIImageWritetoSavedPhotosAlbum(_imageVIEw.image,nil);

顺便说一句,我使用这个设置在主线程中运行HUD,在后台运行任务,这是我的意图.

[HUD_code showMessage:@"saving image"];dispatch_queue_t concurrentQueue =dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0);dispatch_async(concurrentQueue,^{        UIImageWritetoSavedPhotosAlbum(someUIImage,nil);            dispatch_async(dispatch_get_main_queue(),^{                [HUD_code dismiss];         });});
解决方法 UIKit classes are documented to be usable from the main thread only,除非另有说明. (例如,UIFont is documented to be thread-safe.)

关于UIKit函数的线程安全性(与类不同)没有明确的一揽子声明,因此假设它们通常是线程安全的并不安全.某些UIKit函数(如UIGraphicsBeginImageContext)明确记录为线程安全,这意味着UIKit函数通常不是线程安全的.

由于UIImageWritetoSavedPhotosAlbum可以发送异步完成消息,您应该在主线程上调用它并使用其完成支持来执行[HUD_code dismiss].

总结

以上是内存溢出为你收集整理的iOS:dispatch_async和UIImageWriteToSavedPhotosAlbum全部内容,希望文章能够帮你解决iOS:dispatch_async和UIImageWriteToSavedPhotosAlbum所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存