我目前正在使用 initWithDecoder 解码我通过无线发送的数据。我注意到的一件事是,当它被调用时,它看不到范围内的变量,因此不会按照我想要的方式运行,这是我所做的一个示例:
首先我对所有数据进行编码:
-(void) encodeWithCoder: (NSCoder *) encoder
{
for(BaseGroup *attackCard in myArray)
{
[encoder encodeObject: attackCard];
}
}
在同一个班级中,我记下了我拥有的物品数量:
self.numItems = [self.myArray count];
在 initWithCoder 我希望迭代和解码编码的 NSData 如下
-(id) initWithCoder: (NSCoder *) decoder
{
for(int i =0; i < self.numItems; i++)
{
[self.myArray addObject:[decoder decodeObject]];
}
return self;
}
问题是 initWithCoder 超出了变量 numItems 的范围,因此根本不迭代。有没有解决的办法?