Objective C数组不存储值

时间:2013-06-05 03:38:07

标签: objective-c

预警:我正在参加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)。

怎么了?

2 个答案:

答案 0 :(得分:4)

self.cards需要初始化,否则您正在调用-[nil addObject:]

答案 1 :(得分:1)

我认为你没有初始化数组:

在init内部初始化它:

cards=[[NSMutableArray alloc]init];