Я пытаюсь динамически загрузить изображение в информационное окно. Проблема в том, что SDWebImage никогда не завершается. Однако, как только я снова нажимаю маркер, изображение отображается и вызывается завершение, но никогда не в первый раз. Мой журнал для «запуска» отображается в первый раз, поэтому я знаю, что код вызывается, но завершение никогда не отображается при первом запуске, если изображение не кэшировано, и в этом случае оно будет отображаться при втором касании маркера.
Примечание: я сохраняю ссылку на изображение в сниппете, так как у меня нет другого применения.
Любые идеи, почему SDWebImage не завершается? Или есть лучший подход к этому, о котором кто-то еще может подумать?
Последнее, что я вижу под блоками в документации, говорит следующее, что кажется подходящим, но я не понимаю, как я могу отменить запрос, чтобы вызвать такое поведение.
Примечание. ни ваш блок успеха, ни блок отказа не будут вызываться, если ваш запрос изображения будет отменен до завершения.
bool tapped = NO;
-(BOOL) mapView:(GMSMapView *) mapVieW didTapMarker:(GMSMarker *)marker{
tapped=YES;
[mapVieW setSelectedMarker:marker];
return YES;
}
- (UIView *)mapView:(GMSMapView *)mapVieW markerInfoWindow:(GMSMarker *)marker{
if([marker.snippet isEqualToString:@""] || [marker.snippet isEqualToString:nil]){
//no image
tapped = NO;
//code here
return view;
}else{
//image
//code for custom view which is unimportant
if(tapped){
NSLog(@"run");
[image setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", URL_PREFIX, marker.snippet]] placeholderImage:[UIImage imageNamed:@"you"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
NSLog(@"complete");
tapped=NO;
[mapView setSelectedMarker:nil];
[mapView setSelectedMarker:marker];
}];
}
return view;
}
}