0

我需要有关上述错误的帮助。我的项目正在使用 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] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '' *** First throw call stack: (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 类型的未捕获异常终止

4

1 回答 1

1

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

例如:

 dispatch_async(dispatch_get_main_queue(), ^{
     [self.titleTextNode setNeedLayout];
 });
于 2016-03-21T11:24:35.590 回答