Domanda

In particolare l'avvertimento è: " 'struct NSString *' incompatibili tipi Objective-C, previsto 'struct UIImage *' quando si passa l'argomento 4 'objectWithType: Nome: Codice: immagine' dal distinta tipo Objective-C". Si segue una linea che assomiglia così:

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

Quindi, ho capito che ho creato il Object classe per prendere tipo UIImage, ma sto dotandola di tipo NSString. Ecco il problema:. Non so come indicare l'immagine in modo diverso rispetto al suo nome di file

(Mi scuso se questo è un problema di fondo. Sono nuovo di questo e cercando di cercare soluzioni prima di pubblicare qui. Tutto l'aiuto che si può offrire è apprezzato.)

È stato utile?

Soluzione

In realtà bisogno di un'istanza di UIImage, che si capisce. Così, il metodo della classe imageNamed: viene in genere utilizzato per questo:

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

Un'altra opzione (dal momento che siete usando tutte le stringhe qui) potrebbe essere quella di riscrivere il metodo in modo che ci vuole un nome invece di un'immagine e quindi creare l'immagine all'interno della implementazione del metodo. Così si potrebbe definire il metodo:

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

Altri suggerimenti

Usa [UIImage imageNamed:]. Sarà solo il lavoro per le immagini che fanno parte del progetto.

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

Se 'immagine.png' è incluso nel vostro pacco progetto, allora si può fare questo per passare un UIImage invece di un NSString:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top