【问题标题】:How to call a method from another method in the same .m file [closed]如何从同一个.m文件中的另一个方法调用一个方法[关闭]
【发布时间】:2012-07-18 19:32:12
【问题描述】:

对不起,标题很复杂,但我不确定最好的说法,我这里有两种方法 .h

@interface Deck : NSObject

-(void) shuffle: (NSMutableArray *) unshuffledDeck;

-(NSMutableArray *) giveHand: (NSMutableArray *)  deck;

-(void) moveOpperand: (NSMutableArray *) moveFrom :(NSMutableArray *) moveTo;

@end

.m

-(void) moveOpperand: (NSMutableArray *) moveFrom :(NSMutableArray *) moveTo{
    NSString *opperandObject = [moveFrom lastObject];
    if (opperandObject) {
    [moveTo addObject:moveFrom.lastObject];
        [moveFrom removeLastObject];
    }
}

-(NSMutableArray *) giveHand: (NSMutableArray *)  deck{
    NSMutableArray *hand;
    for (int i=0; i<7; i++) {
      [moveOpperand [_refrenceDeck] [hand]]; //use of undeclared identifier 'moveOpperand'
    }
    return hand;
}

正如你所看到的,我试图在下面的一个中调用上面的那个,问题是我不断收到我上面评论的消息,上面写着使用未声明的标识符,我不知道为什么会发生这种情况,所以我是想知道,如何从同一个 .m 文件中的另一个方法调用您编写的方法?

【问题讨论】:

  • 在编写操作系统之前您不想阅读 Objective-C 教程吗?
  • [self moveOperand:_referenceDeck :hand]; 声明的方法有些混乱 - moveFrom 是一个参数,而不是参数名称,所以 [self moveOperand:_referenceDeck moveFrom:hand];错了

标签: objective-c ios


【解决方案1】:

[self moveOperand:_referenceDeck :hand]; 声明的方法有点混乱 - moveFrom 是一个参数,而不是参数名称,所以 [self moveOperand:_referenceDeck moveFrom:hand];错了

【讨论】:

    【解决方案2】:
    [self moveOpperand:arg1 :arg2];
    

    等等

    另请注意,self 在实例方法中指的是实例/实际对象,而在类(“静态”)方法中指的是类本身。

    【讨论】:

    • @JoshCaswell 给你 - 很难看到这种非常难以理解的编码实践背后。
    • @H2CO3 感谢有关正确变量名的课程!加入一个旨在帮助回答编码问题的论坛真的很高兴,只是因为你不想问的问题而受到批评
    • @William:你到底在说什么?
    • @JoshCaswell “很难看到这种非常难以理解的编码实践背后”
    • @William:也许它的措辞可以更有建设性,但你的方法 is 命名不佳,因为它没有第二个参数的标签。它应该类似于-(void) moveOperandFrom: (NSMutableArray *)src to:(NSMutableArray *)dest
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2015-06-16
    • 2012-03-20
    • 2013-10-08
    相关资源
    最近更新 更多