2010-11-10 58 views
0

具体来说,警告是:“在不同的Objective-C类型中传递'objectWithType:name:code:image'的参数4时,预期的'struct UIImage *'不兼容Objective-C类型的结构NSString *'。它遵循一条线,看起来像这样:我该如何纠正这个'不兼容的Obj-c类型'警告?

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

所以,我明白,我创建的类Object采取型的UIImage,但我为它提供类型的NSString。这是问题:我不知道如何指定图像与文件名不同。

(。道歉,如果这是一个基本的问题,我是新来的这一点,并试图在这里发帖之前寻找解决方案,您可以提供任何帮助表示赞赏。)

回答

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 
} 
0

使用[UIImage的imageNamed:]。仅适用于作为项目一部分的图像。

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

如果“image.png”包含在你的项目包,那么你就可以做到这一点通过一个UIImage,而不是一个NSString:

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