-1

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

我有一个类 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];

该死的机器不会有这种废话。为什么以所有美好和神圣的名义,我不能这样做?

更重要的是,我怎么 - 可以 - 我这样做?

多谢你们!J-摇滚

4

4 回答 4

5
@selector(takeTurnHostile)

应该

@selector(takeTurnHostile:)

因为您的选择器带有一个参数,而冒号是选择器名称的一部分。

于 2013-02-03T22:34:56.333 回答
1

选择器中缺少冒号...

[self performSelector:@selector(takeTurnHostile:) withObject:myMonster afterDelay:0.1];
于 2013-02-03T22:35:01.660 回答
1

它应该是@selector(takeTurnHostile:)。你忘记了冒号

于 2013-02-03T22:35:08.073 回答
1

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

takeTurnHostile:

冒号表示您正在调用的方法有 1 个参数。当前没有冒号,您要运行该方法:

-(void) takeTurnHostile
{
}
于 2013-02-03T22:46:36.697 回答