См. @ DyingCactus ответ о том, как получить целое число.
Код OP, однако, имеет серьезную проблему в контексте. Поскольку тип контекста void*
, UIKit не будет ожидать, что вы передадите в него объект ObjC, поэтому NSNumber не будет сохранен.
Поэтому, когда вы выполняете
[(NSNumber*)context intValue];
в animationDidStop почти наверняка получат сумасшедшие числа или произойдет сбой.
Есть 2 аналогичных способа решения этой проблемы.
(a) Передайте объект с сохранением количества +1 и отпустите его в animationDidStop:
[UIView beginAnimations:nil context:[[NSNumber alloc] initWithInt:myValue]];
....
int retrievedValue = [(NSNumber*)context intValue];
[(NSNumber*)context release];
(b) Передача памяти malloc
и free
в animationDidStop:
int* c = malloc(sizeof(*c));
*c = myValue;
[UIView beginAnimations:nil context:c];
....
int retrievedValue = *(int*)context;
free(context);