我试图通过NSTimer中的selector方法发送一个char数组。我的targetMethod将获取数组的前36个值并在每个间隔执行其函数,每次递增36,直到它到达char数组的末尾。但是,似乎NSTimer只允许您在使用以下格式时使用userInfo发送NSObject:
fork()
我还没有找到使用NSDictionary的方法来做这件事,我宁愿不必执行昂贵的NSArray转换。
我发送的char数组包含36-9500个值。是否可以在NSTimer中使用char数组?如果没有,有没有办法可以使用全局指针来引用一个数组,然后可以通过targetMethod中的指针访问该数组?
答案 0 :(得分:0)
如果您不想转换为NSObject,因为您认为它对您的应用程序来说成本太高,您可以随时全局/公开地使用char数组。
只需为它创建一个属性或实例变量,然后从选择器中以这种方式访问它。
否则,您必须转换为NSString或NSData并以此方式传递。我无法想到一种方法来干净地覆盖除此之外的数据传递。
答案 1 :(得分:-1)
NSTimer
的userInfo对象不一定是NSDictionary
,因此您实际上可以将NSArray
作为userInfo
传递。但是,我相信目标方法的第一个参数将传递NSTimer
实例,这可能不是您想要的。你可能会有更好的运气dispatch_async
,您可以在2秒内传递一个块来执行,并直接使用NSArray
调用该方法。