Как я могу исправить это предупреждение «Несовместимые типы Obj-c»? - PullRequest
0 голосов
/ 10 ноября 2010

В частности, предупреждение: «Несовместимые типы Objective C» struct NSString * », ожидаемое« struct UIImage * »при передаче аргумента 4 объекта« ObjectWithType: name: code: image »из отличного типа Objective C».Далее следует строка, которая выглядит следующим образом:

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

Итак, я понимаю, что я создал класс Object для получения типа UIImage, но я предоставляю ему тип NSString.Вот проблема: я не знаю, как указать изображение по-другому, чем его имя файла.

(Извинения, если это основная проблема. Я новичок в этом и пытаюсь найти решения, прежде чем публиковать здесь. Любая помощь, которую вы можете предложить, приветствуется.)

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

Вам на самом деле нужен экземпляр UIImage, который вы понимаете.Таким образом, метод класса imageNamed: обычно используется для этого:

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

Другой вариант (поскольку здесь используются все строки) может состоять в том, чтобы переписать ваш метод так, чтобы он принимал имя вместо изображенияа затем создать изображение внутри реализации метода.Таким образом, вы можете определить метод:

- (void)objectWithType:(NSString*)type name:(NSString*)name code:(NSString*)code imageName:(NSString*)imageName
{
  UIImage* theImage = [UIImage imageNamed:imageName];
  // do whatever
}
0 голосов
/ 10 ноября 2010

Если 'image.png' включен в комплект вашего проекта, вы можете сделать это, чтобы передать UIImage вместо NSString:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];
0 голосов
/ 10 ноября 2010

Используйте [UIImage imageNamed:]. Будет работать только для изображений, которые являются частью вашего проекта.

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