-7

抱歉标题很复杂,但我不确定最好的表达方式,我这里有两种方法.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 文件中的另一个方法调用您编写的方法?

4

2 回答 2

2

[self moveOperand:_referenceDeck :hand];正如声明的那样,该方法有些令人困惑- moveFrom 是一个参数,而不是参数名称,因此 [self moveOperand:_referenceDeck moveFrom:hand]; 是错的

于 2012-07-18T19:43:08.400 回答
1
[self moveOpperand:arg1 :arg2];

等等

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

于 2012-07-18T19:36:57.350 回答