Метод конструктора не вызывается должным образом - PullRequest
0 голосов
/ 26 января 2012

Я создал класс Player.h.Конструктор такой:

-(Player*) construct
{
    health = 100;
    width = 50;
    height = 50;
    return self;
}

И он находится в моем заголовочном файле как -(Player*) construct;

Чтобы проверить, я вызываю мой метод getWidth и другие методы получения, и все возвращаются как 0 Это правильный способ сделать конструктор?Я пытаюсь использовать лучшие методы ООП, и впервые в Obj-C я действительно использую объекты

Ответы [ 2 ]

1 голос
/ 26 января 2012

Обычно вы создаете объекты в Objective-C посредством вызова alloc / init, в вашем случае [[Player alloc] init].Просто замените метод init в вашем классе - у него уже есть правильный скелет.Не удаляйте строку self = [[super alloc] init].

1 голос
/ 26 января 2012

Если вы хотите, чтобы ваш объект был сконструирован, вам нужно выделить его для инициализации. Хотя вы можете вызывать свой метод -construct, он традиционно называется -init или -initWith<Blah>, где <Blah> - это некоторая информация, такая как прямоугольник или другое полезное значение. Вы бы создали такой объект:

Player* newPlayer = [[Player alloc] init];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...