【问题标题】:performSelector:withObject:afterDelay: won't accept my custom UIImageView pointers, why not?performSelector:withObject:afterDelay: 不接受我的自定义 UIImageView 指针,为什么不呢?
【发布时间】:2013-02-03 22:33:13
【问题描述】:

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

我有一个类 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-摇滚

【问题讨论】:

  • 嗯...谢谢,我猜。真的有必要为此 D-List 我的声誉吗?

标签: ios objective-c pointers performselector


【解决方案1】:
@selector(takeTurnHostile)

应该是

@selector(takeTurnHostile:)

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

【讨论】:

    【解决方案2】:

    选择器中缺少冒号...

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        takeTurnHostile:
        

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

        -(void) takeTurnHostile
        {
        }
        

        【讨论】:

          猜你喜欢
          • 2012-02-12
          • 2020-06-22
          • 1970-01-01
          • 2014-08-10
          • 2015-12-05
          • 1970-01-01
          • 1970-01-01
          • 2017-01-10
          • 2011-08-22
          相关资源
          最近更新 更多