2

私はObjective-Cが初めてで、「セレクターのクラスメソッドがありません」というエラーを乗り越えることができません。

ここに私の.hコードがあります:

#import <UIKit/UIKit.h>

@interface PhotoCapViewController : UIViewController < UIImagePickerControllerDelegate, UINavigationControllerDelegate > {
    UIImageView * imageView;
    UIButton * choosePhotoBtn;
    UIButton * takePhotoBtn;
}
@property (nonatomic, retain) IBOutlet UIImageView * imageView;
@property (nonatomic, retain) IBOutlet UIButton * choosePhotoBtn;
@property (nonatomic, retain) IBOutlet UIButton * takePhotoBtn;
- (IBAction)getPhoto:(id)sender;

+ (UIImage *)burnTextIntoImage:(NSString *)text :(UIImage *)img;

@end

これが.mで定義した関数です

+ (UIImage *)burnTextIntoImage:(NSString *)text :(UIImage *)img {

    ...

    return theImage;
}

これが私が関数を呼び出す方法です

UIImage* image1 = [PhotoCapViewController burnTextIntoImagetext:text1 img:imageView.image];

どんな助けでもいただければ幸いです。ありがとう。

4

3 に答える 3

8

呼び出しているメソッドが定義と一致しません。

定義は次のとおりです。

+ (UIImage *)burnTextIntoImage:(NSString *)text :(UIImage *)img;

したがって、メソッド名は次のとおりです。

burnTextIntoImage::

しかし、あなたはそれを次のように呼びます:

UIImage* image1 = [PhotoCapViewController burnTextIntoImagetext:text1 img:imageView.image];

したがって、次の名前のメソッドを呼び出そうとしています:

burnTextIntoImagetext::

次のように正しく呼び出すことができます。

UIImage* image1 = [PhotoCapViewController burnTextIntoImage:text1 :imageView.image]; 

実際には、メソッドは呼び出される必要があるburnText:(NSString*)text intoImage:(UIImage*)imageため、次のような「文」になります。

+ (UIImage *)burnText:(NSString *)text intoImage:(UIImage *)image;

...

UIImage *image1 = [PhotoCapViewController burnText:text1 intoImage:imageView.image];
于 2012-08-08T06:17:03.273 に答える
2

メソッド宣言が不完全です。

変化する

+ (UIImage *)burnTextIntoImage:(NSString *)text :(UIImage *)img;

+ (UIImage *)burnTextIntoImage:(NSString *)text img:(UIImage *)img;
于 2012-08-08T06:23:09.417 に答える
-1

呼び出しコードが間違っています。このコードを使用してみてください

UIImage* image = [PhotoCapViewController burnTextIntoImage:text1 img:imageView.image];
于 2012-08-08T06:18:21.633 に答える