2013-12-18 4 views
0

도움이 필요합니다. 내 프로필 사진첩을 수집하는 응용 프로그램이 있습니다. 문제는이 프로필 사진을 Facebook으로 변경하고 내 응용 프로그램으로 이동해도 여전히 오래된 것을 보여줍니다. image,하지만이 서비스는 업데이트 된 이미지로 나에게 좋은 URL을 반환한다. 당신이 이미지를 캐싱하기 때문에uimageview가 URL에서 나를 새로 고침하지 않습니다.

if ([session sessionType] == MASTFacebook) { 
     NSLog (@ "fbPictureURL:% @", [(MAFacebookSession *) session fbPictureURL]); 

     [self.userImgView setImageWithURL [(MAFacebookSession *) session fbPictureURL]]; 

    } 

enter image description here

+0

이미지 캐싱 중입니까? –

답변

0

, 당신의 UIImageView를 설정 setImageWithURLRequest 같은 NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:-1]; 및 사용 방법을 사용하려고합니다. 당신은 그래서 URL로 자동으로 이미지를 캐시합니다 setImageWithURL을 사용하고 있기 때문에 당신이 UIImageView+AFNetworking

if ([session sessionType] == MASTFacebook) { 
    NSLog (@ "fbPictureURL:% @", [(MAFacebookSession *) session fbPictureURL]); 
    NSURL *url = [(MAFacebookSession *) session fbPictureURL]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:-1]; 

    // if you are using UIImageView+AFNetworking. the method is as follows 
    [self.userImgView setImageWithURLRequest:request placeholderImage:nil success:nil failure:nil]]; 

} 
+0

setImageWithURLRequest 메서드를 다시 설정하지 않습니다. – user2652032

+0

@ user2652032이 방법은 this.why와 같은 UIImageView 카테고리를 사용하고 있습니까? – chancyWu

+0

@ user2652032 당신은'setImageWithURL :'메소드를 파헤쳐서 하나의 메소드가'setImageWithURLRequest'처럼 보이고, request를 파라미터로 사용합니다. – chancyWu

0

를 사용하는 경우 귀하의 경우에는

이 코드는 다음과 같이해야한다, 그래서 당신은 또한 업데이트 후 이미지 URL을 업데이트해야합니다 영상.

+0

하지만 다른 사진에 대해 동일한 URL을 사용하고 있습니다. 동일한 URL에 대한 각 호출은 새로운 이미지를 제공해야합니다. -setImageWithURLRequest 메서드를 사용하여 캐시를 지우려면 어떻게해야합니까? – evya

0

가장 좋은 방법은 Facebook에서 이미지 URL을 UIImage로 변환하고 저장하는 것입니다. 귀하의 요구 사항에 따라 (애플 리케이션 대리인, UserDefaults). 그런 다음 ImageView에 할당하십시오. 프로필 사진이 이미 이미지로 변환되면 모든보기 컨트롤러에서 이미지를 사용할 수 있으므로 변환하는 데 시간이 걸리지 않습니다 (캐싱하지 않고 캐시로 작동). 언제나 로그인하면 업데이트 된 프로필 사진을 얻을 수 있습니다. 예 : 여기에 당신이 (우리가 데이터를 저장할 수 있도록 UserDefaults에서 우리는 이미지를 저장할 수 없습니다) 데이터를 저장 할 수

NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 

    [defaults setObject:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"your image url" forKey:@"profileImage"]; 

.

UIImageView * view = [[UIImageView alloc] initWithData : [defaults objectForKey : @ "profileImage"]]];

관련 문제