NSMutableArray 不会 return/keep NSNumbers 序列

NSMutableArray will not return/keep a sequence of NSNumbers

我想,每次调用这个函数时,NSMutableArray "sequence" 到 return 已经在序列中的数字,加上另一个从 0 到 3 的随机数字。这是我目前拥有的功能:

编辑 我尝试从 didMoveToView 内部调用初始化此函数,它现在 return 是一个序列。 此代码现在有效:

-(NSMutableArray *)extendSequence {

int newItem = arc4random_uniform(4);
NSNumber* newItemAsNumber = [NSNumber numberWithInteger:newItem];
[sequence addObject:newItemAsNumber];
NSLog(@"%@", sequence);

return sequence;
}

(我不确定 where/if 我是否可以插入 NSMutableArray *sequence = [NSMutableArray alloc] init]]; 语句,因为当我之前尝试时,它每次调用时都会擦除序列。)

我怎样才能做到这一点? 一个随机序列可以 return 类似于“1”,然后是“1,3”,然后是“1,3,0”等等

提前致谢。

听起来您不太清楚您在哪里跟踪 "state" 到目前为止的序列。听起来您在该对象的某处有一个名为 "sequence" 的实例变量(否则您现在正在编写的内容将无法编译)。这是跟踪这组数字的合理位置,这些数字将存在于对象的整个生命周期中,但每次调用 -sequence 方法时都会添加。

您应该将数组的初始化行添加到对象的 -init 方法中。这样它只用对象初始化一次。

(当前代码 returns nil 的原因是你 从不 初始化数组,所以 "additions"没有效果。您在该方法中初始化的其他版本不断清除内容的原因很简单,就是您每次都在创建并返回一个新数组,它将替换您上次创建的数组.)