如何纠正这种“不相容的OBJ-C类型”警告?
-
30-09-2019 - |
题
具体的警告是:“不兼容的Objective-C类型'struct nsString *',预期'struct'struct uiimage *'传递'objectWithType的参数4:name:name:code:code:image'来自不同的客观-C类型'。它遵循看起来像这样的行:
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:@"image.png"],
所以,我知道我创建了班级 Object
要使用type 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成像:]。仅适用于您项目一部分的图像。
[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"]];
不隶属于 StackOverflow