Objective c 通过NSTimer传递字符数组

Objective c 通过NSTimer传递字符数组,objective-c,arrays,char,nstimer,Objective C,Arrays,Char,Nstimer,我试图通过NSTimer中的选择器方法发送一个字符数组。我的targetMethod将获取数组的前36个值,并每隔一段时间执行其函数,每次递增36,直到到达char数组的末尾。但是,在使用以下格式时,NSTimer似乎只允许您使用userInfo发送NSObjects: [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(targetMethod:) userInfo:nil

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

[NSTimer scheduledTimerWithTimeInterval:2.0
    target:self
    selector:@selector(targetMethod:)
    userInfo:nil
    repeats:NO]
我也没有找到一种使用NSDictionary的方法,我更希望不必执行代价高昂的NSArray转换


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

如果您不想转换为NSObjects,因为您认为这对您的应用程序来说成本太高,您可以始终使char数组全局/公开可用

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


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

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

char array[]
char*array[]
?如果是前者,您可以轻松地将其转换为
NSString
NSData
,然后对其进行重新分解。您不能将任何参数传递给
targetMethod:
选择器。根据定义,它将只获取
NSTimer
,因为它是一个参数。userInfo可以是任何类。您可以传递NSString或NSData本身。已更新!谢谢你的评论