NSTimer iOS4中的userinfo

时间:2011-02-13 09:32:18

标签: iphone ios ios4 nstimer

我想将一些数据传递给fire方法。所以我使用'userInfo'

我确实喜欢这个:

struct MyStruct* userinfo = malloc(sizeof(struct MyStruct));

userinfo->a = 1;
userinfo->b = 2;

NSTimer *myTimer = [NSTimer scheduledTimerWithInterval:0.05 target:self selector:@selector(myFireMethod:) userInfo:userinfo repeats:YES];

但是问题发生了,iOS应用程序在运行scheduledTimerWithInterval方法时崩溃了。

'userinfo'肯定有问题。可能是什么错误?

1 个答案:

答案 0 :(得分:1)

userInfo必须是Objective C对象,因为它在分配期间保留。

如果你想传递C-struct,你必须用NSValue包装它:

NSValue* val = [NSValue valueWithPointer: your_struct_ptr];