我把这个日志在控制台当我运行我的应用程序在模拟器。没有在iOS 8中看到这个。我不知道是什么造成了这。有其他人遇到同样的问题,那么它是如何固定?或是没有任何帮助的任何人都可以提供关于这个吗?
此应用程序是由一个后台线程修改布局的发动机,从而导致发动机的腐败和怪异的崩溃
转自:http://translate.baiducontent.com/transpage?query=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F31951704%2Fthis-application-is-modifying-the-autolayout-engine-from-a-background-thread-wh&from=en&to=zh&source=url&origin=ps
添加评论
|
不改变任何东西但UI主线程。虽然它可能似乎工作的一些操作系统或设备而不是别人,势必会使你的应用程序不稳定和不可预知的,崩溃。 如果你必须响应一个通知,这可以发生在后台,然后确保 你至少有这2个选项: 异步调度使用
当使用 听上主线程方便,你可以指定在哪个线程要观察被通报,在你注册的时候通知,使用
当<em>观察主线程</em>?当你都注册和注册。但你回应的通知,你已经在你需要在的地方。 后通知主线程
混合溶液,<strong>不保证</strong>,观察员只调用从表示方法。它允许观察者在轻,成本较低的稳健设计。这里只提到作为一个解决方案,<em>你应该避免</em>。 | |||||||||||||||||||||
|
您的代码更新UI布局从后台线程。队列,你运行你的代码,改变操作上不需要。例如NSURLSession。shared()并不时使用的主要队列的新要求。确保你的代码运行在主线程中,我使用的nsoperationqueue的静态方法。 Swift:
Obj-C:
| ||||
所有的UI部分更新你需要进入应用程序的主线程。 我叫<strong>createmenuview()</strong>为背景,我得到了下面的错误 “这个应用程序是从一个后台线程修改布局的发动机,从而导致发动机损坏和怪异的崩溃” 所以我叫到主线程的使用方法
斯威夫特3和Xcode 8 正确的代码写在下面:
|