2012-01-26 5 views
0

Я создал класс под названием Player.h. Конструктор таково:Неправильно вызван метод конструктора

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

И это в моем файле заголовка, как -(Player*) construct;

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

+1

В объективе-c есть инициализаторы. См. Http://stackoverflow.com/questions/2928404/constructor-in-objective-c –

+1

ваш метод не следует называть 'getWidth', а просто' width'. 'get' - это префикс, зарезервированный для особой роли в Cocoa, а общий получатель - не он. – bbum

ответ

1

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

1

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

Player* newPlayer = [[Player alloc] init]; 
Смежные вопросы