【发布时间】:2014-01-02 00:12:47
【问题描述】:
我想知道是否有人遇到过这个问题。
这又回到了我的另一个问题,人们说代码不会无缘无故地突然开始工作。
我花了几个小时调试我的应用程序,检查每一行代码。如果我从 Xcode、模拟器或 iPhone 启动我的应用程序,它将无法运行。然而,当我在 iPhone 上启动我的应用程序而不通过 Xcode 时,它运行良好。
我尝试重新启动 Xcode,但同样的事情发生了。知道可能是什么原因造成的吗?
#import "CardGameViewController.h"
#import "Deck.h"
#import "PlayingCardDeck.h"
#import "PlayingCard.h"
#import "CardMatchingGame.h"
@interface CardGameViewController ()
@property (nonatomic, strong) CardMatchingGame *game;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *cardButtons;
@property (weak, nonatomic) IBOutlet UILabel *scoreLabel;
@end
@implementation CardGameViewController
-(CardMatchingGame *)game{
if (!_game) _game = [[CardMatchingGame alloc] initWithCardCount:[self.cardButtons count] usingDeck:[self createDeck]];
return _game;
}
-(Deck *)createDeck{
return [[PlayingCardDeck alloc] init];
}
- (IBAction)touchCardButton:(UIButton *)sender {
NSUInteger chosenButtonIndex = [self.cardButtons indexOfObject:sender];
[self.game chooseCardatIndex:chosenButtonIndex];
[self updateUI];
}
-(void)updateUI{
for (UIButton *cardButton in self.cardButtons){
NSUInteger cardButtonIndex = [self.cardButtons indexOfObject:cardButton];
Card *card=[self.game cardAtIndex:cardButtonIndex];
[cardButton setTitle:[self titleForCard:card] forState:UIControlStateNormal];
[cardButton setBackgroundImage:[self backgroundImageForCard:card] forState:UIControlStateNormal];
cardButton.enabled = !card.isMatched;
self.scoreLabel.text = [NSString stringWithFormat:@"Score: %d", self.game.score];
}
}
-(NSString *)titleForCard:(Card *)card {
return card.isChosen ? card.contents : @"";
}
-(UIImage*) backgroundImageForCard:(Card *)card{
return [UIImage imageNamed:card.isChosen ? @"cardFront" : @"cardBack"];
}
@end
有一个断点
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *cardButtons;
在调试器中显示-0 [CardGameViewController setCardButtons:]
我在控制台中的所有属性都显示为 nil。
【问题讨论】:
-
我停用了断点,它成功了。为什么?
标签: ios objective-c xcode