performSelector:withObject:afterDelay:不接受我的自定义UIImageView指针,为什么不呢?

时间:2013-02-03 22:33:13

标签: ios objective-c pointers performselector

好的伙计...... 希望这将是另一个快速。

我有一个MonsterView类,扩展了UIImageView,扩展了NSObject。

我已经声明了一个名为myMonster的MonsterView指针,它包含MonsterView类的对象,看起来像这样......

MonsterView* myMonster = [monsterArray objectAtIndex:0];

现在指针myMonster指向类MonsterView的对象。

我的方法如下:

-(void) takeTurnHostile:(MonsterView*) monster
{
     // Do Stuff
}

我想通过使用performSelector调用此方法... 像这样:

[self performSelector:@selector(takeTurnHostile) withObject:myMonster afterDelay:0.1];

血腥的机器不会有任何这样的废话。 为什么以所有善良和圣洁的名义不能这样做?

更重要的是,-COULD-我这样做了吗?

谢谢,伙计们! J-岩

4 个答案:

答案 0 :(得分:5)

@selector(takeTurnHostile)

应该是

@selector(takeTurnHostile:)

因为你的选择器接受一个参数,而冒号是选择器名称的一部分。

答案 1 :(得分:1)

选择器中缺少冒号......

[self performSelector:@selector(takeTurnHostile:) withObject:myMonster afterDelay:0.1];

答案 2 :(得分:1)

它应该是@selector(takeTurnHostile:)。你忘记了结肠

答案 3 :(得分:1)

正如H2CO3所说,你必须提供冒号:

takeTurnHostile:

冒号表示您调用的方法有1个参数。目前没有冒号,你说要运行方法:

-(void) takeTurnHostile
{
}