信号sigabrt错误:断言失败 - [_ ASDisplayLayer setNeedsLayout]

时间:2016-03-16 00:26:11

标签: objective-c xcode asyncdisplaykit

我需要帮助解决上述错误。我的项目正在使用AsyncDisplayKit,我在方法

中的_ASDisplayLayer.mm文件行104中收到上述错误
- (void)setNeedsLayout
{
    ASDisplayNodeAssertMainThread();//line 104 where error is occuring
    [super setNeedsLayout];
}

我不知道如何解决这个问题,因为我是图书馆的新手,我只是重新运行以前的开发人员的工作。完整错误堆栈是: *断言失败 - [_ ASDisplayLayer setNeedsLayout],/ Users /.../Desktop /.../Pods/AsyncDisplayKit/AsyncDisplayKit/Details/_ASDisplayLayer.mm:104 2016-03-16 00:17:08.951 DanceRockIt [408:168719] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'' ***第一次抛出调用堆栈: (0x252fa2eb 0x24ac6dff 0x252fa1c1 0x25ad0d3b 0x27f519 0x2755f93b 0x2755f3d9 0x2756240b 0x2758f1f5 0x2949954b 0x297c4525 0x294b3a69 0x294f9e2d 0x2956c68d 0x2956d473 0x2956b935 0x345515 0x345259 0x12abcd 0x106ccbf 0x10775c3 0x106fefb 0x1079017 0x1078909 0x25030e0d 0x250309fc) libc ++ abi.dylib:以NSException类型的未捕获异常终止

1 个答案:

答案 0 :(得分:1)

从后台线程中调用您的setNeedsLayout代码。你必须找到这个地方并转移到GUI线程(又名主线程)。

例如:

 dispatch_async(dispatch_get_main_queue(), ^{
     [self.titleTextNode setNeedLayout];
 });