Как я могу исправить это «несовместимые типы OBJ-C»?
-
30-09-2019 - |
Вопрос
В частности, предупреждение: «Несовместимые объективные типы» struct NSString * ', ожидаемое «структуру Uiimage *» при прохождении аргумента 4 «ObjectWithtype: Name: Code: Image» из отчетливого объекта-C типа «. Следует строку, которая выглядит так:
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:@"image.png"],
Итак, я понимаю, что создал класс Object
Чтобы взять тип UIImage, но я предоставляю это типом Nsstring. Вот проблема: я не знаю, как указать изображение по-разному, чем его имя файла.
(Извинения, если это основная проблема. Я новичок в этом и пытаюсь искать решения, прежде чем публиковать здесь. Любая помощь, которую вы можете предложить, ценится.)
Решение
Вам действительно нужен экземпляр 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
}
Другие советы
Используйте [Uiimage ImageNamed:]. Будет работать только на изображениях, которые являются частью вашего проекта.
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]]
Если в вашем проекте включен «Image.png», вы можете сделать это, чтобы пройти Uiimage вместо NSString:
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];