预警:我正在参加IOS的Itunes Stanford课程,而且我是这个语言的完整菜鸟。
我的“Deck.m”文件中有此功能。
- (id)init {
self = [super init];
if (self) {
for (NSString *suit in [Card validSuits]) {
for (NSUInteger rank = 0; rank < [[Card validRanks] count]; rank++) {
Card *card = [[Card alloc] init];
card.contents = [[[Card validRanks] objectAtIndex:rank] stringByAppendingString:suit];
[self.cards addObject:card];
NSLog(@"%@", [self.cards count]);
}
}
}
return self;
}
我的“Card.h”文件中也有这个功能(该组由哪个组成)
@interface Deck : NSObject
@property (nonatomic, strong) NSMutableArray *cards;
- (Card *)drawRandomCard;
@end
我遇到的问题是,当我在运行程序时打印计数时,它始终为0.当我尝试打印卡时,它们看起来很好。当我尝试通过索引数组来打印卡片时,它们都是(null)。
怎么了?
答案 0 :(得分:4)
self.cards
需要初始化,否则您正在调用-[nil addObject:]
。
答案 1 :(得分:1)
我认为你没有初始化数组:
在init内部初始化它:
cards=[[NSMutableArray alloc]init];