我正在尝试添加多个接口声明,但没有达到很远。我想我可能会得到错误的语法,但我已经尝试了几次,它会在错误消息后通过错误消息转移我。这是头文件的内容。
#import <UIKit/UIKit.h>
@interface AGDWTiledImageView : UIView
- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees;
- (id)initWithFrame:(CGRect)frame tileset: (NSString *)tileset;
@end
非常感谢任何帮助。
编辑:抛出错误消息的代码是
的最后一行for (int row = firstRow; row <= lastRow; row++) {
for (int col = firstCol; col <= lastCol; col++) {
UIImage *tile;
UIImage *rotatedImage = [tile imageRotatedByDegrees:270.0];
错误消息显示“UIImage没有可见的@interface声明选择器imageRotatedByDegrees”
答案 0 :(得分:1)
您的问题中的代码毫无意义:
UIImage *tile;
UIImage *rotatedImage = [tile imageRotatedByDegrees:270.0];
首先,您将tile
声明为指向UIImage
的指针。由于您没有明确地为其赋值,因此它已初始化为nil
。您可能希望将其指向UIImage
的某个实际实例,但我不知道您希望它指向哪个图像。
然后您尝试向其发送imageRotatedByDegrees:
消息。但是没有为UIImage
声明该消息。它仅针对AGDWTiledImageView
声明。
如果您希望UIImage
了解名为imageRotatedByDegrees:
的邮件,则可以在UIImage
上声明类别。最好在类别选择器上添加前缀,以避免与其他类别或Apple未来的类扩展冲突。 (选择器是消息/方法名称。)
// UIImage+AGDW.h
#import <UIKit/UIKit.h>
@interface UIImage (AGDW)
- (UIImage *)AGDW_imageRotatedByDegrees:(CGFloat)degrees;
@end
// UIImage+AGDW.m
@implementation UIImage (AGDW)
- (UIImage *)AGDW_imageRotatedByDegrees:(CGFloat)degrees {
// your implementation here
}
然后,在您要使用AGDW_imageRotatedByDegrees:
的文件顶部,您必须#import "UIImage+AGDW.h"
。