具体来说,警告是:“不兼容的Objective-C类型'struct NSString *',当传递'objectWithType:name:image'来自不同的Objective-C类型”的参数4时,预期'struct UIImage *'。它遵循一条看起来如此的线:
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:@"image.png"],
所以,我知道我创建了类Object
以获取类型UIImage,但我提供的类型为NSString。这是问题所在:我不知道如何以不同于文件名的方式指示图像。
(如果这是一个基本问题,请道歉。我是新手,并且在发布此处之前尝试寻找解决方案。感谢您提供的任何帮助。)
答案 0 :(得分:1)
您实际上需要一个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
}
答案 1 :(得分:0)
使用[UIImage imageNamed:]。仅适用于属于项目的图像。
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]]
答案 2 :(得分:0)
如果你的项目包中包含'image.png',那么你可以这样做来传递UIImage而不是NSString:
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];