Итак, я звоню, чтобы вытащить изображение с сервера фотографий с помощью объекта NINetworkImageView от Nimbus. Мне нужно проверить, верен ли возвращенный объект. Если он недействителен, метод
- (void) networkImageView:(NINetworkImageView *) imageView didLoadImage:(UIImage *) image {
возвращает прозрачный объект UIImage. Я думаю, что метод возвращает мне изображение JPG с четкими пикселями, что вызывает у меня проблему. Я попробовал следующие проверки, чтобы увидеть, прозрачно ли изображение без удачи (все нижеприведенные попытки выполняются в рамках описанного выше метода):
Неудачная попытка 1:
UIImageView *tempView = [[UIImageView alloc] initWithImage:image];
if(tempView.alpha != 0.0f)
{
//the image is a valid (nonclear) image
}
else
{
//the image is invalid (clear)
}
Неудачная попытка 2:
CGImageRef cgref = [[UIImage alloc] CGImage];
CIImage *cim = [[UIImage alloc] CIImage];
if(!([image CIImage] == cim && [image CGImage] == cgref))
{
//the image is a valid (nonclear) image
}
else
{
//the image is invalid (clear)
}
Неудачная попытка 3:
if(image)
{
//the image is a valid (nonclear) image
}
else
{
//the image is invalid (clear)
}
Неудачная попытка 4:
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if(cim == nil && cgref == NULL)
{
//the image is invalid (clear)
}
else
{
//the image is a valid (nonclear) image
}
Редактировать
Мне удалось вытащить «Неверное изображение» из симулятора. Метод networkimageview возвращает изображение jpg, которое является полностью белым. Однако в симуляторе это проявляется как четкая картинка, мысли?