Pregunta

En concreto, la advertencia es: " 'struct NSString *' incompatibles tipos de Objective-C, que se espera 'UIImage struct *' cuando se pasa el argumento de 4 'objectWithType: Nombre: Código: Imagen' de distinto tipo de Objective-C". De ello se sigue una línea que se ve así:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:@"image.png"],

Por lo tanto, entiendo que creé el Object clase para tomar UIImage tipo, pero estoy dotándolo de tipo NSString. Aquí está el problema:. No sé cómo indicar la imagen de manera diferente a su nombre de archivo

(Disculpas si esto es un problema básico. Soy nuevo en esto y tratar de buscar soluciones antes de publicar aquí. Cualquier ayuda que puede ofrecer es apreciado.)

¿Fue útil?

Solución

En realidad se necesita una instancia de UIImage, que usted entiende. Por lo tanto, el método de la clase imageNamed: se suele utilizar para esto:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];

Otra opción (dado que está utilizando todas las cadenas aquí) podría ser la de reescribir el método de modo que se necesita un nombre en lugar de una imagen y luego crear la imagen dentro de la implementación del método. Así que se podría definir el método:

- (void)objectWithType:(NSString*)type name:(NSString*)name code:(NSString*)code imageName:(NSString*)imageName
{
  UIImage* theImage = [UIImage imageNamed:imageName];
  // do whatever
}

Otros consejos

Utilice [UIImage imageNamed:]. Sólo funcionará para las imágenes que forman parte de su proyecto.

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]]

Si 'image.png' está incluido en su paquete de proyectos, entonces usted puede hacer esto para pasar un UIImage en lugar de un NSString:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top