我在Debug和Release中有一个完成块的奇怪行为.
例如:
例如:
sourceViewController.presentViewController(ccVC,animated: true,completion: { () -> Void in NSUserDefaults.standardUserDefaults().setBool(true,forKey: kChromeCastInstructionsShown) NSUserDefaults.standardUserDefaults().synchronize() println("save bolean") })
在调试中:
println(“save bolean”)打印字符串
在重新:
println(“save bolean”)什么都不打印
类
安德里亚
解决方法
它看起来像这里讨论的Swift编译器错误(至少版本1.1):
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/1632
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/1632
在发布版本中,有时不会调用闭包,特别是当它们按顺序排序时:
array.map({ $0 * 2 }).map({ $0 * 3 }).map({ $0 * 4 })...
该问题仅出现在Swift中,而不是出现在Objective-C中.如果您的应用程序不需要通过优化获得更好的性能,则可以通过将Swift编译器优化级别设置为无[-Onone]来进行设计.
func completionHandler() { NSUserDefaults.standardUserDefaults().setBool(true,forKey: kChromeCastInstructionsShown) NSUserDefaults.standardUserDefaults().synchronize() println("save bolean") } sourceViewController.presentViewController(ccVC,completion: completionHandler)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。