GCD信号

dispatch_semaphore_t 必须与dispatch_semaphore_wait成对出现
dispatch_semaphore_t 次数大于dispatch_semaphore_wait不会导致崩溃 但让信号量无故增加可能会导致不在预期的bug
dispatch_semaphore_t 次数小于dispatch_semaphore_wait会导致崩溃
Calls to dispatch_semaphore_signal must be balanced with calls to wait(). Attempting to dispose of a semaphore with a count lower than value causes an EXC_BAD_INSTRUCTION exception.

阿萨德

在将UIAlertView和UIActionSheet升级为 UIAlertController过程中
发现UIAlertController的 UIAlertControllerStyleAlert类型不能同时展示两个 它并不会像UIAlertView一样 后创建的叠加到先创建的UIAlertView上面 所以需要一个线程等待管控一下 选用GCD的信号量
实现当点击了UIAlertAction后才加载下一个UIAlertController

但是我们测试环境下有个切换 测试网络环境的浮窗 当点击切换网络环境时

  • 会断开网络
  • 移除所有view
  • AppDelegate所有属性滞空
  • 调用didFinishLaunchingWithOptions

相关链接

GCD信号量-dispatch_semaphore_t

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容