Проблема с добавлением данных в NSMutableArray - PullRequest
0 голосов
/ 04 июня 2010

Я пытаюсь добавить значение playerhight, среди других значений, в NSMutableArray, но оно не позволяет мне строить, и я не могу понять, почему.

#import "iGameViewController.h"

@implementation iGameViewController

@synthesize player;

    int playerheight;

NSMutableArray *location = [NSMutableArray arrayWithCapacity:3];

-(IBAction)up;{
    player.center = CGPointMake(player.center.x, player.center.y - 5);
    location = [NSMutableArray new];
[location addObject:player.center.x];
[location addObject:player.center.y];
[location addObject:playerheight];

}

Ответы [ 3 ]

2 голосов
/ 04 июня 2010

Вы можете добавлять объекты в массивы только в Objective-C. player.center является структурой, а player.center.x является CGFloat, ни один из которых не является объектом. Если вы хотите добавить точку как отдельный объект, вы можете поместить ее в объект NSValue. Если вы хотите добавить поплавки напрямую, они должны быть упакованы в NSNumber объектов.

1 голос
/ 04 июня 2010

playerheight и location должны быть переменными экземпляра, объявленными в вашем файле .h, а затем установить их в методе init. Вы не можете инициализировать глобальный объект Objective C таким способом. Если вы действительно хотите, чтобы он был глобальным, вы можете инициализировать его как nil, а затем каждый раз, когда вам это нужно, проверять, чтобы он был создан, а не создавать его.

1 голос
/ 04 июня 2010

Зачем вам нужна эта строка?

 location = [NSMutableArray new];

Остальное уже объяснил Дэйв.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...