1

iOS 用の Objective-C を学習しようとしています。私は現在、iTunesU で「一緒にコーディング」をフォローしています。コントローラーに別のクラスのメソッドを呼び出させることができないため、行き詰まりました。私が間違っていることを見つけることができず、StackOverflow に解決策があるかもしれないと考えました!

メソッド「flipCardAtIndex」は機能していません。nslog を使用してデバッグし、メソッド「flipCard」から出力を取得しました。しかし、flipCardAtIndex の実装を入れても、何も得られません。つまり、それが呼び出されることはないと思います。コードを少し短くしたので、重要だと思う部分だけを示しました。これはコントローラ:

#import "ViewController.h"
#import "PlayingCardDeck.h"
#import "CardMatchingGame.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UILabel *flipsLabel;
@property (nonatomic) int flipCount;
@property (weak, nonatomic) IBOutlet UILabel *scoreLabel;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *cardButtons;
@property (strong, nonatomic) CardMatchingGame *game;

@end

@implementation ViewController

- (CardMatchingGame *) game{
    if (_game) _game = [[CardMatchingGame alloc] initWithCardCount:[self.cardButtons     count]
                                                     usingDeck:[[PlayingCardDeck alloc] init]];
    return _game;
}

- (IBAction)flipCard:(UIButton *)sender {

[self.game flipCardAtIndex:[self.cardButtons indexOfObject:sender]];
self.flipCount++;
[self updateUI];

}

そして実装:

- (void)flipCardAtIndex:(NSUInteger)index
{
    NSLog(@"ALL YOUR BASE ARE BELONG TO US");
    Card *card = [self cardAtIndex:index];
}
4

1 に答える 1

4

修理?

- (CardMatchingGame *) game{
    if (!_game) _game = [[CardMatchingGame alloc] initWithCardCount:[self.cardButtons        count] usingDeck:[[PlayingCardDeck alloc] init]];
    return _game;
}
于 2013-02-06T21:23:58.813 に答える