【问题标题】:Count the number of times a method is called in Cocoa-Touch?计算一个方法在 Cocoa-Touch 中被调用的次数?
【发布时间】:2010-11-14 11:42:03
【问题描述】:

我有一个小应用程序,它使用 cocos2d 来运行游戏的四个“关卡”,其中每个关卡都完全相同。第四关运行后,我想显示一个结束游戏的场景。我能够处理这个问题的唯一方法是制作四种方法,每个级别一种。毛。

我已经多次使用 cocos2d 和仅使用基本的 Cocoa 框架遇到过这种情况。那么我可以计算一个方法被调用的次数吗?

【问题讨论】:

    标签: objective-c iphone cocoa-touch methods cocos2d-iphone


    【解决方案1】:

    你可以在每次调用你的方法时增加一个实例变量整数吗?

    我无法在评论中格式化代码,所以要详细说明:

    在你的头文件中,添加一个整数作为实例变量:

    @interface MyObject : NSObject { 
       UIInteger myCounter; 
    } 
    

    然后在你的方法中,增加它:

    @implementation MyObject
        - (void)myMethod { 
          myCounter++; 
          //Do other method stuff here 
          if (myCounter>3){ 
              [self showEndGameScene]; 
          } 
         }
    
    @end 
    

    【讨论】:

    • 正如Blaenk 下面所说,确保在某处初始化计数器。
    【解决方案2】:

    我不知道您的方式是否是最好的方式,或者我的方式是否是最好的方式,但就像 Nathaniel 所说,您只需定义一个整数来保存您的 @interface 中的计数:

    @interface MyClass : NSObject {
        int callCount;
    }
    

    然后该方法可以通过这样做来增加它:

    - (void) theLevelMethod {
       callCount++;
       // some code
    }
    

    请确保在构造函数中将 callCount 变量初始化为 0 或 viewDidLoad 的等效项。然后在检查计数的代码中您可以检查:

    if (callCount == 4) {
       // do something, I guess end scene
    }
    

    再一次,我想你可以简单地做这样的事情:

    for (int i = 0; i < 4; i++) {
       [self theLevelMethod];
    }
    
    [self theEndScene];
    

    我不知道你的游戏逻辑是如何工作的,但我想这会工作。

    抱歉,如果我误解了您的问题。

    【讨论】:

    • 哇!我一直生活在黑暗中!应该在几周前问这个问题。谢谢。 :)
    猜你喜欢
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多