2013-06-05 40 views
-1

预警:我正在通过Itunes斯坦福大学IOS课程,而且我是一个完全使用该语言的noob。Objective C数组未存储值

我在我的“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.当我尝试打印卡,他们看起来很好。当我尝试通过索引数组来打印卡片时,它们都是(空)。

怎么了?

回答

4

self.cards需要初始化,否则您打电话给-[nil addObject:]

+0

该死的。该课程的教授明确表示要注意的确切问题。万分感谢 – volk

1

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

里面的init初始化:

cards=[[NSMutableArray alloc]init];