【问题标题】:What do these swift crashes mean?这些快速崩溃意味着什么?
【发布时间】:2017-05-10 05:19:51
【问题描述】:

我一直在尝试根据我在 Crashlytics 中看到的日志来调试我的应用程序中的一些问题。我经常遇到日志崩溃。

libswiftCore.dylib -> swift_unknownRetain_n + 44

libswiftCore.dylib -> swift_unknownRelease + 24

在这两种情况下,抛出的异常都是 EXC_BAD_ACCESS KERN_INVALID_ADDRESS。

我主要在使用积木时看到它们。我知道这些是分段错误,但 ARC 不应该优雅地处理内存管理以防止这些错误吗?还是我错过了一些关键点?

【问题讨论】:

标签: ios swift memory-management crash


【解决方案1】:

此崩溃主要是由于内存泄漏。当任何变量或对象试图访问受限内存时,就会发生这种崩溃。有时在没有通知的情况下,我们会尝试访问释放的对象(在这种情况下也可能会发生崩溃)。是的,在大多数情况下 ARC 会处理内存。你不必担心。请检查您是否正在访问受限内存。

块问题: 你在这里确定了一个关键的事情。块的使用。是的,使用块时可能会出现此错误。如果你使用一个对外部对象有强引用的块,而该块也对该块有强引用,则会出现内存泄漏。当您的块尝试访问另一个对象(第三个角色)时,您可能会认为所有对象都在同一范围内并且同时处于活动状态。但不幸的是,第三个角色可能会被解除分配。 (对第三个角色的引用必须是弱的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2015-09-13
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多