我希望,每次调用此函数时,NSMutableArray“sequence”返回序列中已有的数字,再加上另一个0到3的随机数字。这是我到目前为止的功能:
修改 我尝试从didMoveToView内部调用初始化函数,它现在返回一个序列。 此代码现在可以使用:
-(NSMutableArray *)extendSequence {
int newItem = arc4random_uniform(4);
NSNumber* newItemAsNumber = [NSNumber numberWithInteger:newItem];
[sequence addObject:newItemAsNumber];
NSLog(@"%@", sequence);
return sequence;
}
(我不确定在哪里/我是否可以插入NSMutableArray *sequence = [NSMutableArray alloc] init]];
语句,因为当我之前尝试过时,它每次调用时都会擦除序列。)
我怎么能实现这个目标? 随机序列可能会返回到例如“1”,然后是“1,3”,然后是“1,3,0”等。
提前谢谢。
答案 0 :(得分:0)
听起来你有点不清楚你在哪里跟踪"州"到目前为止的顺序是什么。听起来你有一个名为" sequence"的实例变量。在这个对象的某个地方(否则你现在写的东西不会编译)。这是跟踪这组数字的合理位置,这些数字将存在于整个对象的生命周期中,但每次调用-sequence
方法时都会添加它。
您应该将数组的初始化行添加到对象的-init
方法中。这样它只用对象初始化一次。
(当前代码返回nil
的原因是您永远不会初始化数组,因此"添加"对它没有任何影响。您在该方法中初始化的其他版本继续擦除内容的原因只是您每次创建并返回一个新数组,这将取代您上次创建的数组。)