Frage

Im Einzelnen ist die Warnung: "Inkompatible Objective-C-Typ 'struct NSString *', erwartet 'struct UIImage *', wenn Argument übergibt 4 von 'objectWithType: Name: Code: Bild' aus verschiedenem Objective-C-Typ". Es folgt eine Linie, die sieht so aus:

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

Also, ich verstehe, dass ich die Klasse Object erstellt Typ UIImage zu nehmen, aber ich sende es mit Typ NSString. Hier ist das Problem. Ich weiß nicht, wie das Bild, um anzuzeigen, anders als der Dateinamen

(Entschuldigt, wenn dies ist ein grundsätzliches Problem. Ich bin neu in diesem und versuche, nach Lösungen zu suchen, bevor hier veröffentlichen. Jede mögliche Hilfe anbieten können wird geschätzt.)

War es hilfreich?

Lösung

Sie müssen tatsächlich eine Instanz von UIImage, die Sie verstehen. So wird die Klassenmethode imageNamed: typischerweise für diese:

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

Eine weitere Option (da Sie sind alle Strings hier verwendet wird) könnte sein, Ihre Methode neu zu schreiben, so dass es einen Namen anstelle eines Bildes nimmt und dann das Bild innerhalb der Methode Implementierung erstellen. So könnten Sie die Methode definieren:

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

Andere Tipps

Verwenden [UIImage imagenamed:]. Wird nur Arbeit für Bilder, die Teil des Projekts sind.

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

Wenn ‚image.png‘ ist in Ihrem Projektpaket enthalten sind, dann können Sie dies tun, um eine UIImage anstelle eines NSString weitergeben müssen:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top