将 NSTimer 转换为数组索引的 NSUInterval

Convert NSTimer to NSUInterval for Array Index

我想使用 NSTimer 计数从子数组中获取相应的索引位置。

-(void)someMethod: (NSTimer*)t{

 NSUInteger *tickNumber = (NSUInteger)t;
 NSMutableArray *subArray = [dataPoints objectAtIndex:tickNumber];

 //etc...
}

我收到警告:

"Incompatible integer to point conversion initializing NSUInteger (unsigned long)

如何使用 NSTimer 间隔从子数组索引中提取数据?

编辑: 我误解了 NSTimer 的属性是如何工作的。我认为我可以更轻松地访问计时器的当前间隔。相反,我现在只在循环中使用我自己的内部整数。

 NSUInteger frameTicker =0;

-(void)someMethod: (NSTimer*)t{
 frameTicker++;
 NSMutableArray *subArray = [dataPoints objectAtIndex:frameTicker];

 }

无需转换。

对于第一个警告,我们需要知道 "t" 是什么类型,这样我们才能知道如何将其转换为 NSUInteger,转换不起作用。

为了避免出现第二条消息,您应该重命名您的 tickNUmber 或者您可以使用以相同名称声明的 属性 而不是局部变量。

根据@EmilioPelaez,我没有直接使用 NSTimer:

NSUInteger frameTicker =0;
-(void)someMethod: (NSTimer*)t{
 frameTicker++;
 NSMutableArray *subArray = [dataPoints objectAtIndex:frameTicker];

 }

我会称赞他,但他没有post回答。