2014-03-11 4 views
0

내 앱에서 사용자가 프로필 사진을 업데이트 할 수있는 페이지가 하나 있습니다. 그리고 다른 페이지에서 저는 그 프로필 사진을 보여줍니다. 나는 사용자 ID를 사용하여 1p.gp과 같은 프로필 이미지를 저장하므로 매번 이름이 동일합니다. 지금은있는 UIImageView + AFnetworking.h를 사용하고 난 settign 이미지가이 코드를 BYU입니다 :이미지가 앱에서 업데이트되지 않습니다

NSString *urlString=[ImageURL stringByAppendingPathComponent:[[NSUserDefaults standardUserDefaults] valueForKey:@"profile-picture"]]; 
NSURL *url=[[NSURL alloc]initWithString:urlString]; 
[imgProfile setImageWithURL:url placeholderImage:[UIImage imageNamed:@"No_image"]]; 

을 지금은 사진을 업데이트하고 이전을 표시하고 업데이트 된 프로필 사진을 보려면 다른 페이지로 이동합니다. 사용자가 사진을 업데이트 할 수있는 페이지로 돌아 가면 오래된 이미지가 표시됩니다. 그리고 브라우저에 직접 이미지 링크를 입력하면 서버에 updat4ed 이미지가 표시됩니다. 따라서 이미지는 서버로 업데이트되지만 앱으로 업데이트되지는 않습니다. 클래스마다 데이터를 다시로드하지 않기 때문에 각 시간 URL이 같아지기 때문일 수도 있습니다. 내가 쓴거야? 그리고 그렇다면이 오류를 해결하기 위해 무엇을해야합니까?

답변

0

이것은 자연스러운 추측이지만 페이지가 처음로드 될 때만 프로필 사진을 초기화하는 것입니다. 뷰 계층 구조가 언로드되지 않는 한 (보기 컨트롤러간에 전환하는 경우에만 발생하는 것은 아닙니다) 사용자 프로필 그림을 표시하는 UIImageView는 ressource를 다시로드 할 이유가 없습니다.

따라서 이미지가 변경되었는지 여부를 확인하고 필요할 경우 다시로드하거나이 단계를 건너 뛰고 페이지가 표시 될 때마다 이미지를 다시로드하는 것이 좋습니다.

다시 말하지만, 이것은 추측에 불과합니다. 트릭을하지 않으면 이미지를 저장하고로드하는 방법에 대해 자세히 알려주십시오.

+0

아니요 ... 맞았습니다 ... 요청에 대한 캐시를 저장하는 메서드가 있습니다. 그 이미지에 변경이 있으면 매번로드되는 것을 nil 값으로 반환합니다. – vivek

0

귀하의 문제는 귀하의 요청이 오래된 이미지를 캐시하고 있다고 생각합니다. 새 이미지를 설정 한 다음 서버에서 가져 오려는 경우 오래된 캐시 된 버전이 표시됩니다.

이 요청에 대한 캐싱을 비활성화 할 수 있습니다.

관련 문제