Я делаю Stanford iOS7 CS193P Lecture2 домашнее задание, есть проблема, я не понимаю. Интересно, что это случается, когда я переворачиваю время sencond карты. Вот wraning LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSExceptioniOS Card * карта = [self.deck drawRandomCard]; Причины Thread 1: сигнал SIGABRT
#import "ViewController.h"
#import "PlayingCardDeck.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UILabel *fliplabel;
@property(strong,nonatomic)Deck *deck;
@property(nonatomic)int flipscount;
@end
@implementation ViewController
-(void)setFlipscount:(int)flipscount
{
_flipscount=flipscount;
self.fliplabel.text=[NSString stringWithFormat:@"Flips: %d",self.flipscount];
}
-(Deck *)deck
{
if (!_deck)
_deck=[self createDeck];
return _deck;
}
-(Deck *)createDeck;
{
return [[PlayingCardDeck alloc] init];
}
- (IBAction)touchCardButton:(UIButton *)sender {
if ([sender.currentTitle length]) {
[sender setBackgroundImage:[UIImage imageNamed:@"cardback"] forState:UIControlStateNormal];
[sender setTitle:@"" forState:(UIControlStateNormal)];
}else{
Card *card=[self.deck drawRandomCard];
[sender setBackgroundImage:[UIImage imageNamed:@"cardfront"] forState:UIControlStateNormal];
[sender setTitle:[card contents] forState:(UIControlStateNormal)];
}
self.flipscount++;
}
Если я удалить карты * карты = [self.deck drawRandomCard] в (IBAction) touchCardButton: (UIButton *) отправитель затем она отлично работает, как это произошло, как я могу это исправить, кто-то пожалуйста, помогите мне PS: Я не изменил свое имя метки
Существует моя страница ошибки:
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
**Thread1:signal SIGABRT**
Существует мой выход:
25 libdyld.dylib 0x000000010a412145 start + 1
26 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Существует мои drawRandomCards:
-(Card *)drawRandomCard
{
Card *randomcardCard=nil;
unsigned index = arc4random() % [self.cards count];
randomcardCard = self.cards[index];
[self.cards removeObjectAtIndex:index];
return randomcardCard;
}
Показать все сообщения об ошибке. И не могли бы вы также показать, что находится в 'drawRandomCard'? – Larme
@ Larme Я поставил свое сообщение об ошибке и drawRandomCard выше. – robbie
Если вы перейдете на навигационную панель точки Xcode и добавьте точку останова во всех исключениях Objective-C, ошибка приведет к остановке в полезном месте, а не внутри 'main()'. Это приведет вас к реальной линии, которая вызывает проблемы. –