Objective c 如何检查传递给方法的指针?

Objective c 如何检查传递给方法的指针?,objective-c,pointers,methods,call,Objective C,Pointers,Methods,Call,希望有人能帮助我。 我试图找出在方法调用中传递的对象指针 所以(在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(@

希望有人能帮助我。 我试图找出在方法调用中传递的对象指针

所以(在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];
提前感谢:)

  • 尤尔基

除非蓝色和红色物体内部隐藏了一些区别它们的信息,即:

[蓝色设置识别信息:@“这是蓝色的”]

[红色设置识别信息:@“这是红色的”]

并在调用LoadBioter之前设置,则无法在LoadBioter方法内判断传递给它的是哪个CCSprite对象


唯一的替代方法是将红色和蓝色声明为全局变量,并在LoadBiot内部对它们的指针进行比较,以确定哪个是哪个。但是那样做是不对的,如果我发现你这么做,我会非常非常生气:哈哈,我不希望你生气,所以我不会这么做。但我认为你给我指明了正确的方向。CCSprite似乎有一个标记属性,但这不起作用:blue.tag=1;NSLog(@“blue.tag=%d”,blue.tag);不知道为什么…啊,我现在明白为什么了…当CCSprite没有初始化时,您还不能设置标记。太糟糕了,因为我需要在方法内部初始化。解决方法是首先用一个空图片文件初始化精灵,然后设置标记,然后在方法内部用新图片重新初始化。一点也不漂亮!但它是有效的。。。