【问题标题】:Getting the results of a method to be placed into another .m file将方法的结果放入另一个 .m 文件中
【发布时间】:2011-06-06 20:39:27
【问题描述】:

这听起来很简单,但是请注意,我是新手。我有一个简单的程序,需要帮助解决这个问题。我想在一个方法中获得结果并将其放入另一个 .m 文件中。这是我所拥有的:

CheckRecognizer .m ....

-(int)good {

    if (fieldGoal == NO && fieldGoalPosition == 0) {
        return 0;
    }

    else if (fieldGoal == YES && fieldGoalPosition == 1) {
        return 1;
    }

    else if (fieldGoal == NO && fieldGoalPosition == 2) {
        return 2;
    }

...        
}

然后我的 ViewController .m 中有这个:

fieldGoal1 = [CheckRecognizer good];

我的文件中有#import "CheckRecognizer.h",但它无法识别“好”方法。你能帮忙吗?我已经尝试了一切,例如在另一个 .m 文件中命名要访问的变量,但没有成功。谢谢。

【问题讨论】:

  • 首先,您的方法是根据一些现有值返回值。它们是实例变量还是静态变量?如果它们是实例变量,简单的alloc-init-good 会给你0,因为NO0 将分别是fieldGoalfieldGoalPosition 的默认值。

标签: objective-c methods int


【解决方案1】:

要么做好一个类方法, +(int) 好 { ... }

或在 CheckRecognizer 实例上调用 good , [[[CheckRecognizer alloc] init] 好];

我强烈建议你通过http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

【讨论】:

    【解决方案2】:

    您已将方法声明为实例方法,但将其称为类方法。你需要实例化一个实例:

    CheckRecognizer *recognizer = [CheckRecognizer alloc] init];
    

    然后使用它:

    int result = [recognizer good];
    

    你还应该想出一个比“好”更好的方法名。

    【讨论】:

      【解决方案3】:

      fieldGoal1 = [[[CheckRecognizer alloc]init]autorelease]good];

      现在,如果这是正确的做事方式,那是一个完全不同的问题;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 2016-06-08
        相关资源
        最近更新 更多