Как вам известно, блоки принимают -invoke
:
void(^foo)() = ^{
NSLog(@"Do stuff");
};
[foo invoke]; // Logs 'Do stuff'
Я бы хотел сделать следующее:
void(^bar)(int) = ^(int k) {
NSLog(@"%d", k);
};
[bar invokeWithParameters:7]; // Want it to log '7', but no such instance method
Обычный безаргументный -invoke
работает на bar
, но он печатает чушь.
Я не могу найти прямое сообщение такого рода, которое я могу отправить в блок, и не могу найти оригинальную документацию, которая бы описывала, как блоки принимают -вживление
.
Существует ли список сообщений, принятых блоками?
(Да, я попытался использовать class _ startMethodList
для извлечения списка методов из среды выполнения; нет.)
Изменить: Да, я также знаю о вызове блока обычным способом ( bar (7)
;). То, за чем я на самом деле следую, это селектор для метода, который я могу подать в код библиотеки, который не принимает блоки (per-se).
Это очень, очень странно. Я никогда не видел ничего подобного. В то время как я сделал этот снимок экрана, я не загружаю никаких наложений. Во-первых, я думал, что это мое подключение к Интернету, где он не может загрузить информацию плитки; но у нас есть много пользователей, сообщающих об одной и той же проблеме, которые скачали с рынка. Это только начало происходить неделю назад. Хотя не уверен, почему. У кого-нибудь есть подсказка? Спасибо!