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