1

所以我试图在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];

当我运行我的应用程序时,图像不会绘制,有什么帮助吗?

4

1 回答 1

1

你可能想说:

player = [[Circle alloc] init];

而不仅仅是[player init],因为如果 player 为 nil (成员的默认值),后者将什么也不做。

于 2012-07-30T19:38:17.080 回答