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 回答