この「互換性のないOBJ-Cタイプ」警告を修正するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4141036

質問

具体的には、警告は次のとおりです。「互換性のない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"]];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top