Как проверить, какой указатель передается методу? - PullRequest
0 голосов
/ 26 января 2012

надеюсь, кто-нибудь может мне помочь.Я пытаюсь выяснить, какой указатель на объект передается в вызове метода.

Итак (в среде cocos2d) это будет примерно так:

- (void)loadCreature:(CCSprite*)creature
{
    if (/*here I want to check if the pointer is 'blue'*/) NSLog(@"the creature is blue")
    if (/*here I want to check if the pointer is 'red'*/) NSLog(@"the creature is red")
}

и реализация:

CCSprite *blue;
CCSprite *red;

[self loadCreature:blue];
[self loadCreature:red];

заранее спасибо :))

  • Юрки

1 Ответ

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

Если в синих и красных объектах не скрыта некоторая информация, которая их различает, например:

[синий setDistingusingInformation: @ "Это синий"];

[red setDistingusingInformation: @ "Это красный"];

И устанавливается перед вызовом loadCreature, тогда внутри метода loadCreature не будет никакого способа сообщить, какой объект CCSprite был ему передан.

Единственной альтернативой было бы объявить красный и синий как глобальные переменные, а внутри loadCreature сделать сравнение их указателей, чтобы выяснить, что есть что.Но это было бы так неправильно, и если бы я узнал, что вы делаете это, я бы очень сильно разозлился: D

...