2017-05-10 10 views
0

私はCrashlyticsに見られるログに基づいてアプリでいくつかの問題をデバッグしようとしています。私は頻繁にログをクラッシュさせています。これらの迅速なクラッシュは何を意味しますか?

libswiftCore.dylib -> swift_unknownRetain_n + 44 

libswiftCore.dylib -> swift_unknownRelease + 24 

スローされた例外は、いずれの場合もEXC_BAD_ACCESS KERN_INVALID_ADDRESSでした。

ブロックを使用すると、ほとんどの場合それらが表示されます。私はこれらがセグメンテーションフォールトであることを理解していますが、ARCはこれらのエラーを防ぐためにメモリ管理を正常に処理すべきではありませんか?それとも、私はいくつかの重要な点を見逃している?

+0

[このリンクを他のユーザーが既にチェックしているかどうかを確認してください] http://stackoverflow.com/questions/35378756/dyld-library-not-loaded-rpath-libswiftcore-dylib* *](http://stackoverflow.com/questions/35378756/dyld-library-not-loaded-rpath-libswiftcore-dylib) –

答えて

0

このクラッシュは、主にメモリリークが原因で発生します。任意の変数またはオブジェクトが制限されたメモリにアクセスしようとすると、このクラッシュが発生します。時には予告なしに、リリースされたオブジェクトにアクセスしようとします(この状況では、クラッシュが発生する可能性もあります)。はい、ほとんどの場合ARCがメモリを占有します。心配する必要はありません。制限付きメモリにアクセスしているかどうか確認してください。

ブロックに関する問題: ここで重要なことを特定しました。ブロックの使用。はい、ブロックを使用しているときにこのエラーが発生する箇所があります。このブロックへの強い参照を持つ外部オブジェクトへの強い参照を持つブロックを使用すると、メモリリークが発生します。あなたのブロックが別のオブジェクト(第3の役割)にアクセスしようとするとき、あなたは同じスコープにあり、同じ時間に生きていると考えているかもしれません。残念ながら、第3の役割は割り当て解除される可能性があります。 (第3の役割への参照は弱くなければならない)

関連する問題