この「互換性のないOBJ-Cタイプ」警告を修正するにはどうすればよいですか?
-
30-09-2019 - |
質問
具体的には、警告は次のとおりです。「互換性のないObjective-C Type 'struct nsstring *'、「objectwithtype:name:code:image」の引数4を渡すときに、「struct uiimage *」が予想される「struct uiimage *」です。それはそうするように見える線に従います:
[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'がプロジェクトバンドルに含まれている場合、これを行い、nsstringの代わりにuiimageを渡すことができます。
[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];
所属していません StackOverflow