通过NSTimer传递Char数组

时间:2015-10-01 19:30:40

标签: objective-c arrays char nstimer

我试图通过NSTimer中的selector方法发送一个char数组。我的targetMethod将获取数组的前36个值并在每个间隔执行其函数,每次递增36,直到它到达char数组的末尾。但是,似乎NSTimer只允许您在使用以下格式时使用userInfo发送NSObject:

fork()

我还没有找到使用NSDictionary的方法来做这件事,我宁愿不必执行昂贵的NSArray转换。

我发送的char数组包含36-9500个值。是否可以在NSTimer中使用char数组?如果没有,有没有办法可以使用全局指针来引用一个数组,然后可以通过targetMethod中的指针访问该数组?

2 个答案:

答案 0 :(得分:0)

如果您不想转换为NSObject,因为您认为它对您的应用程序来说成本太高,您可以随时全局/公开地使用char数组。

只需为它创建一个属性或实例变量,然后从选择器中以这种方式访问​​它。

否则,您必须转换为NSString或NSData并以此方式传递。我无法想到一种方法来干净地覆盖除此之外的数据传递。

答案 1 :(得分:-1)

NSTimer的userInfo对象不一定是NSDictionary,因此您实际上可以将NSArray作为userInfo传递。但是,我相信目标方法的第一个参数将传递NSTimer实例,这可能不是您想要的。你可能会有更好的运气dispatch_async,您可以在2秒内传递一个块来执行,并直接使用NSArray调用该方法。