我想将一些数据传递给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];


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

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

最佳答案

userInfo必须是Objective C对象,因为在分配过程中会保留它。

如果要传递C结构,则必须用NSValue包装它:

NSValue* val = [NSValue valueWithPointer: your_struct_ptr];

关于iphone - NSTimer iOS4中的userinfo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4983438/

10-13 06:34