Что можно передать в (void *) контексте? - PullRequest
1 голос
/ 19 октября 2010

Я делаю некоторые вещи с анимацией UIView, используя

[UIView beginAnimations:nil context:nil];
// ... Animation configuration ...
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationEnded:finished:context:)];
[UIView commitAnimations];

Относительно следующего вопроса: Apple отклонила приложение из-за animationDidStop: закончен: контекст: является непубличным API

Я реализовал свой собственный метод как "setAnimationDidStopSelector".

Мой вопрос касается параметра context: (void *) context .Apple определяет это следующим образом:

Дополнительная информация, предоставляемая приложением, которая передается в сообщения делегата анимации - селекторы устанавливаются с помощью setAnimationWillStartSelector: и setAnimationDidStopSelector: method.

Мне интересно, какой король вещей может быть передан в качестве контекста.Я относительно новичок в программировании на Objective-C и C. Я немного потерял с типом void *.

Можем ли мы передавать аргументы любого типа, объекты, NSDictionnary, NSString и т. Д.

Спасибо

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

void * - указатель на что-либо.Вы можете передать указатель на любой объект или другой материал, такой как структура или непрозрачный тип Core Foundation.Чтобы избавиться от предупреждения компилятора, приведите указатель к void *:

... context:(void *)myDictionary];

Имейте в виду, что метод не имеет представления о том, что содержит context, и, следовательно, не сохранит его или не позаботится о правильной памятиmanagemnet.Вы должны убедиться, что то, что вы передаете context, все еще существует при вызове методов делегата анимации.

0 голосов
/ 11 февраля 2013
context:(void *)myDictionary];

При вызове этого метода и попытке передать

(void *)[NSNumber numberWithInt:5] - 

xCode предлагает создать некоторый _бридж из-за недопустимого pointerCast из C в Objective-C ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...