Лучшим способом, который я нашел для этого, является использование класса SDWebImageManager. Затем ваш контроллер просмотра или какой-либо другой класс должен соответствовать протоколу SDWebImageManagerDelegate.
SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *cachedImage = [manager imageWithURL:url];
if (cachedImage) {
[button setImage:cachedImage];
// stop or remove your UIActivityIndicatorView here
}
else {
[manager downloadWithURL:url delegate:self];
}
После загрузки изображения будет вызываться метод делегата:
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image {
[button setImage:image];
// stop or remove your UIActivityIndicatorView here
}
Существует также метод делегата, когда возникает ошибка при загрузке изображения
- (void)webImageManager:(SDWebImageManager *)imageManager didFailWithError:(NSError *)error {
// Handle error here
}
Если у вас несколько кнопок, у вас могут возникнуть проблемы с определением того, какое изображение принадлежит к какой кнопке после загрузки изображения. В этом случае вам может потребоваться подклассом кнопок, который обрабатывает загрузку, как описано выше, а затем обновляет собственное изображение.
Надеюсь, что это поможет.
Он может работать с параметром bind также следующим образом:
$name = "%$name%";
$query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name");
$query->bindParam(':name', $name);
$query->execute();
Это может быть альтернатива:
$className = '%' . $this->className . '%';
$query->bind_param('s', $className);
$name
содержит сам шаблон, он не сбежит. – Alain Tiemblo 15 October 2013 в 23:38