2014-12-01 2 views
0

내 응용 프로그램을 application.In iPad페인트을 개발하고이 .IN 사용자 touches을 식별하여 스케치를 그리기 수행 한 사용자가 어떤 page.I에서 sketches을 그릴 수있는에 sketch book가 IOS에서 메모리 경고를 던졌습니다 응용 프로그램에서 swipe gesture (위/아래)을 감지하고 페이지를 하나씩 차례대로 전환 curl 페이지 전환 애니메이션 & 성공적으로 구현했습니다. 그리기 응용 프로그램은

이제 문제는 다음과 같습니다

1. 기기가 둘 다 같은 내 그림 및 전환 페이지 사이에 충돌이 사용자 finger touches를 분석하고 제공 (예를 들면 다음과 같습니다. 내가 가기 바닥에서 펜으로 그릴 때 스 와이프 제스처가 스 와이프 이벤트를 감지하고 즉시 페이지를 넘깁니다. 마찬가지로 페이지를 스 와이프하려고 할 때도 앱에서 해당 부분에 획을 그립니다.) 두 가지 모두 동시에 작동하고 싶습니다.

2.A 사용자는 응용 프로그램에서 N 개의 도면을 만들 수 있습니다. 현재 사용자가 페이지를 넘기거나 현재 화면을 벗어나려고하면 현재 도면을 저장합니다. 다음/이전 페이지가로드 될 때, 앱은 캐시 디렉토리에서 적절한 이미지를 가져 와서로드합니다 (이전에는 캐시 디렉토리에서 모든 도면을 가져 와서 배열의 각 도면을 유지했습니다.) 각 도면의 ID를 저장하는 데이터베이스를 유지 관리하고이 ID를 사용하여 캐시 디렉토리에서 이미지를 읽습니다. 문제는 몇 분 (5 또는 10) 정도 사용한 후에도 앱에서 여전히 메모리 경고를 발생시킵니다. 어쨌든 거기에 있습니까? 그것을 피하기 위해?

메모리 경고를 해결하기 위해 이미지 압축을 시도했지만 압축으로 인해 이미지가 다소 이상합니다. 일반적인 페인트 선에 https://github.com/acerbetti/ACEDrawingView을 사용하고 특정 유형의 획을 사용하는 다른 페인트 도구가 있습니다.

답변

0

코드가 없으면 메모리 누수가있는 곳을 예측하기가 어렵다고 생각합니다. 가장 좋은 방법은 응용 프로그램을 프로파일하는 것입니다. 제품 -> 프로파일 (창 + I)으로 이동하십시오. 이제 어떤 변수가 메모리를 차지하는 지 확인할 수 있습니다.

참고 : ARC를 사용하는 경우 가비지 수집기가 메모리를 해제 처리합니다. malloc 또는 calloc을 사용하여 일부 메모리를 할당하는 경우 해당 메모리를 해제해야합니다.

+0

ARC를 사용하고 있는데도 메모리 문제가 많이 발생합니다. 프로파일 링을 시도하고 메모리를 사용하는 최상위 이미지는 Image_IO_PNG_Data이고 두 번째 것은 CG 래스터 데이터입니다. malloc 또는 calloc을 내 코드에 사용하고 있지 않습니다. 부품 그렇다면 첫 번째 문제를 해결할 방법이 있습니까? – IndiaLabs