UIImage, проверьте, содержат ли изображение Если я создаю UIImage следующим образом: UIImage *image = [[UIImage alloc] init]; Объект создан, но он не содержит изображения. Как я могу проверить, содержит ли мой объект изображение или нет? Ответ 1 Вы можете проверить, есть ли у него какие-либо данные изображения. UIImage* image = [[UIImage alloc] init]; CGImageRef cgref = [image CGImage]; CIImage *cim = [image CIImage]; if (cim == nil && cgref == NULL) { NSLog(@"no underlying data"); } [image release]; Ответ 2 Проверьте cgImage или ciImage, в Swift 3 public extension UIImage { public var hasContent: Bool { return cgImage != nil || ciImage != nil } } CGImage: если объект UIImage был инициализирован с использованием объекта CIImage, значение свойства равно NULL. CIImage: если объект UIImage был инициализирован с использованием CGImageRef, Значение свойства равно нулю. Ответ 3 Проверить с CGImageRef с самим собой, если он содержит значение NULL, означает, что объект UIImage не содержит изображения....... Ответ 4 Это обновленная версия @Kreiri, я применил метод и исправленную логическую ошибку: - (BOOL)containsImage:(UIImage*)image { BOOL result = NO; CGImageRef cgref = [image CGImage]; CIImage *cim = [image CIImage]; if (cim != nil || cgref != NULL) { // contains image result = YES; } return result; } UIImage может основываться только на CGImageRef или CIImage. Если оба значения равны нулю, изображение отсутствует. Пример использования метода предоставления: if (![self containsImage:imageview.image]) { [self setImageWithYourMethod]; } надеюсь, что это поможет кому-то.
Ответ 1 Вы можете проверить, есть ли у него какие-либо данные изображения. UIImage* image = [[UIImage alloc] init]; CGImageRef cgref = [image CGImage]; CIImage *cim = [image CIImage]; if (cim == nil && cgref == NULL) { NSLog(@"no underlying data"); } [image release];
Ответ 2 Проверьте cgImage или ciImage, в Swift 3 public extension UIImage { public var hasContent: Bool { return cgImage != nil || ciImage != nil } } CGImage: если объект UIImage был инициализирован с использованием объекта CIImage, значение свойства равно NULL. CIImage: если объект UIImage был инициализирован с использованием CGImageRef, Значение свойства равно нулю.
Ответ 3 Проверить с CGImageRef с самим собой, если он содержит значение NULL, означает, что объект UIImage не содержит изображения.......
Ответ 4 Это обновленная версия @Kreiri, я применил метод и исправленную логическую ошибку: - (BOOL)containsImage:(UIImage*)image { BOOL result = NO; CGImageRef cgref = [image CGImage]; CIImage *cim = [image CIImage]; if (cim != nil || cgref != NULL) { // contains image result = YES; } return result; } UIImage может основываться только на CGImageRef или CIImage. Если оба значения равны нулю, изображение отсутствует. Пример использования метода предоставления: if (![self containsImage:imageview.image]) { [self setImageWithYourMethod]; } надеюсь, что это поможет кому-то.