所以我想在Objective-C中创建一个Circle类。我知道Java和OOP,以及一点Objective-C,但我无法弄清楚为什么我的类不会初始化。这是Circle.h:
#import <Foundation/Foundation.h>
#import "Image.h"
@interface Circle : NSObject
{
Image *img;
CGPoint pos;
}
-(id) init;
-(void) draw;
@end
这是Circle.m文件:
#import "Circle.h"
@implementation Circle
-(id) init{
self = [super init];
if (self != nil) {
img = [[Image alloc] initWithImage:[UIImage imageNamed:@"circle.png"]];
pos = CGPointMake((CGFloat)200, (CGFloat)200);
}
img = [[Image alloc] initWithImage:[UIImage imageNamed:@"circle.png"]];
pos = CGPointMake((CGFloat)200, (CGFloat)200);
return self;
}
-(void) draw{
[img renderAtPoint: pos centerOfImage: YES];
}
@end
然后在我的主要课程中,我打电话给:
//player is the name of the circle object (Circle *player;)
[player init];
在我的渲染方法中,我打电话给:
[player draw];
当我运行我的应用时,图像将无法绘制,任何帮助?
答案 0 :(得分:1)
你可能想说:
player = [[Circle alloc] init];
而不仅仅是[player init]
,因为如果玩家为nil(成员的默认值),后者将不执行任何操作。