해제되지중인 :메모리가 할당 내가 삭제 단추가 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
인플레 이스를 사용하지만이 아무 짓도 안 했어요.
업데이트 2 : 나는 때문에 이런 짓을
tempProxy.deleteBackward()
: 다음 dispatch_async
에 내가 이것을 사용
let tempProxy = (self.textDocumentProxy as UIKeyInput)
: 나는라고 삭제할 때마다 생성됩니다 tempProxy
라는 변수를 추가
self
에 대한 참조가 있으면 메모리가 유지 될 수 있다고 들었습니다.
UPDATE 3 :
내가 변경하십시오 print()
문
(self.textDocumentProxy as UIKeyInput).deleteBackward()
.
메모리 사용량이 훨씬 적습니다. 그러나 메모리가 아직 공개되지 않은 이유에 대해 혼란 스러웠습니다.