我怀疑我正在尝试做的事情的解决方案是相当直截了当的——但是,我自己无法让它工作。
这就是我想要做的事情:我已经构建了一个纸牌游戏,在游戏加载时使用纸牌进行初始化。现在,其中一些卡片具有某些属性(卡片类型、卡片名称以及特殊数组)。卡片类型和卡片名称对象很容易检索,因为它们只是一个对象(我可以使用 objectatindex 调用)。但是,特殊数组包含几个关键字,这些关键字会根据选择的卡片而波动。因此,我没有一一初始化这些关键字(就像我对卡片类型和卡片名称所做的那样),而是将它们放入自己的特殊数组中……或数组中的数组。这是我的代码:
项目对象类:
@synthesize cardName=_cardName;
@synthesize cardType=_cardType;
-(id) initWithCardName:(NSString*)cardName initWithCardType:(NSString*)cardType initWithSpecialArray:(NSArray*) specialArray{
self=[super init];
if (self){
_cardName=cardName;
_cardType=cardType;
}
return self;
}
模型类
-(NSMutableArray*)deck{
if (_deck==nil){
_deck=[[NSMutableArray alloc]initWithObjects:
[[itemObjects alloc]initWithCardName:@"The Long Way" initWithCardType:@"bill" initWithSpecialArray:[[NSArray alloc]initWithObjects:@"fast", @"high", nil]],
[[itemObjects alloc]initWithCardName:@"A Short Cut" initWithCardType:@"bill" initWithTrendArray:[[NSArray alloc]initWithObjects:@"small", @"tall", nil]],nil];
查看控制器类(这是我试图调用其中一个对象,例如“快速”,但没有成功
NSString* testing=[[[self.model.deck objectAtIndex:indexPath.row]arrayForKey:@"specialArray"]objectAtIndex:0];
NSLog(@"%@",testing);
我相信我已经正确初始化了我的“specialArray”,问题在于我如何尝试调用它,但如果我在那里犯了错误,任何建议都将不胜感激。谢谢!
编辑:感谢 WendiKidd 解决了这个特殊问题。原来我没有正确初始化我的 specialArray。这导致了我在这里链接到的一个单独的问题。我还在下面为那些对未来感兴趣的人发布了我更正的代码:
@synthesize cardName=_cardName;
@synthesize cardType=_cardType;
@synthesize specialArray=_specialArray;
-(id) initWithCardName:(NSString*)cardName initWithCardType:(NSString*)cardType initWithSpecialArray:(NSArray*) specialArray{
self=[super init];
if (self){
_cardName=cardName;
_cardType=cardType;
_specialArray=specialArray;
}
return self;
}