2010-01-16 5 views
3

MGTwitter를 사용하여 사용자의 프로필 이미지를 가져 와서 캐시하는 가장 효율적인 방법은 무엇입니까?MGTwitterEngine - 프로필 imags를 가져와 캐시하는 효율적인 방법

우리의 문제는 이미지의 URL을 얻기 위해 getUserInformationFor에 대한 호출이 있어야한다는 것입니다. 그런 다음 getImageAtURL은 서버를 두 번 호출합니다. 현재, 우리는 단지 이미지 정보가 필요하기 때문에 여분의 정보는 다른 모든 정보를 다운로드해야합니다. 한 번에 (예 : 사용자 프로필 이미지 목록을 가져 오기 위해)이 통화 중 20-30 건을 수행 할 수 있음을 명심하면 매우 느려집니다.

둘째, 매번 다운로드 할 필요가 없도록 이미지를 캐시하는 가장 효율적인 방법은 무엇입니까? (프로필 이미지가 절대로 변경되지 않는다고 가정해도 괜찮습니다.) 현재 우리는 트위터 사용자 명을 파일 이름으로 사용하여 NSTemporaryDirectory()에 쓰고 각 트위터 요청에 대해 파일 이름이 해당 디렉토리에 있는지 확인하십시오. 보다 효과적이고 효율적인 방법이 있습니까?

답변

0

MGTwitterEngine에서 사용할 수있는 기능 범위를 벗어나는 작업을 수행하려면 원시 Twitter API를 사용해야 할 것입니다. 도움이 필요하면 this 페이지를보십시오.

캐싱은 NSCachesDirectory에서 수행해야합니다. NSTemporaryDirectory보다 긴 수명을 가지며 캐시 된 데이터를 저장하기위한 권장 장소입니다. 이 경우 효율성은 이미지를 저장하여 나중에 쉽게 식별하고 이미지가 있는지 여부를 확인하고 다운로드가 필요한지 여부를 결정하는 것을 의미합니다.

0

NSURLConnection (또는 ASIHTTPRequest)을 사용하여 내 자신의 코드를 작성하여 짹짹 NSDictionary에 지정된 URL에서 프로필 이미지를 다운로드 할 수 있습니다.

다운로드 한 이미지를 캐시 디렉토리에 저장하십시오. 파일 이름은 < 사용자 이름 >.png과 같아야합니다 (Twitter의 모든 이미지는 일반적으로 png입니다). 캐시에서 이미지를 찾는 이런 식으로 NSDictionaries가 모든 이미지 이름을 저장하지 않아도됩니다.

사용자가 프로필 이미지를 변경하면 큰 크기로 커질 수 있으므로이 캐시의 사용자 제어 지우기를 추가하는 것이 좋습니다.

캐시 된 이미지를 2 일 경과하고 사용자가 WiFi를 사용 중일 때 캐시를 다시 작성할 수 있습니다.