对象未初始化

时间:2012-07-30 19:16:24

标签: objective-c xcode ios4

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

当我运行我的应用时,图像将无法绘制,任何帮助?

1 个答案:

答案 0 :(得分:1)

你可能想说:

player = [[Circle alloc] init];

而不仅仅是[player init],因为如果玩家为nil(成员的默认值),后者将不执行任何操作。