リリースされていないされている。しかし、この方法では、各時間をメモリが割り当てられ、私は削除ボタンがIOSキーボードアプリの拡張に押されたときに呼び出され、以下の方法で持っているたびに呼び出し、非常に簡単な方法
func delete()
{
dispatch_async(dispatch_get_main_queue(),
{
for _ in 1..<50
{
(self.textDocumentProxy as UIKeyInput).deleteBackward()
}
print("Deletion End")
})
}
を私のキーボードのメモリ使用量は1〜2MBアップし、戻ってくることはありません。これにより、すぐにクラッシュが発生します。
私はこのスレッド内のオブジェクトを割り当てたり、割り当てを解除したりしていないので、なぜ大量のメモリリークがあるのかわかりません。
UPDATE:
私は静的変数にdispatch_get_main_queue()
を変更:
let mainqueue = dispatch_get_main_queue()
とdispatch_get_main_queue
のmainqueue
インプレースを使用しますが、これは何もしませんでした。
UPDATE 2:私はので、これをした
tempProxy.deleteBackward()
:
let tempProxy = (self.textDocumentProxy as UIKeyInput)
はその後dispatch_async
に私はこれを使用:
私は毎回削除作成されtempProxy
と呼ばれる変数が呼ばれる追加self
への参照があると、メモリが保持される可能性があると聞きました。
UPDATE 3:
私が変更されました:
(self.textDocumentProxy as UIKeyInput).deleteBackward()
をprint()
ステートメントに。
メモリ使用量が大幅に減少しました。しかし、なぜメモリがまだリリースされていないのか、私は混乱していました。