Как заставить makeObjectsPerformSelector работать в Objective C - PullRequest
1 голос
/ 02 июля 2011

Я пытаюсь использовать makeObjectsPerformSelector вместо использования цикла, и я не могу заставить его работать. У меня около 20 шаров, которые я пытаюсь добавить на экран внутри "init".

Я могу добавить один, сделав спрайт так:

CCSprite *ball = [CCSprite spriteWithFile:@"ball.png" rect:CGRectMake(0, 0, 20, 20)];

        // set the position of the ball providing the coordinates
        ball.position = ccp((player.contentSize.width/2 + 400)+ball.contentSize.width/2, winSize.height/2 - ball.contentSize.height/2);

        // add the ball to the playing area
        [self addChild:ball];

Кажется, это прекрасно работает, но теперь мне нужно добавить около 20 из них. Поэтому я решил использовать массив с именем "balls" и прочитал, что могу использовать makeObjectsPerformSelector для выполнения действий над каждым каждым объектом в массиве, но пока не могу понять, как добавить каждый шарик. У меня есть это:

- (void) makeObjectsPerformSelector:(SEL)aSelector
{

    // add the ball to the screen
    [self addChild:aSelector];

}

Я думаю, что мне нужно использовать объект aSelector в массиве шаров и добавить это правильно? Я использую это неправильно?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 июля 2011

Исходя из вашего примера, довольно сложно сказать, что вы пытаетесь сделать.Но если у вас есть NSArray, называемый balls, и операция, которую вы хотите выполнить для каждого шара, называемая bounce, вы можете использовать -makeObjectsPerformSelector::

[balls makeObjectsPerformSelector:@selector(bounce)];

Это было полезно вообще?

1 голос
/ 02 июля 2011

Селектор не является объектом.Это ключ, который используется для поиска реализации в таблице методов.Вы никогда не должны переопределять -makeObjectsPerformSelector:

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