userinfo в NSTimer iOS4 - PullRequest
       3

userinfo в NSTimer iOS4

0 голосов
/ 13 февраля 2011

Я хочу передать некоторые данные методу огня. Поэтому я использую '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 Ответ

1 голос
/ 13 февраля 2011

userInfo должен быть объектом Objective C, потому что он сохраняется во время присваивания.

Если вы хотите передать C-struct, вы должны обернуть ее с помощью NSValue:

NSValue* val = [NSValue valueWithPointer: your_struct_ptr];
...