У меня есть настоящий головной уборщик прямо сейчас. Итак, объект NSTimer
, объект NSMethodSignature
и объект NSInvocation
входят в панель. Вот остальная часть анекдота:Почему это NSInvocation вызывает исключение?
NSMethodSignature *methodSig = [NSMethodSignature methodSignatureForSelector:@selector(setAlphaValue:)];
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:methodSig];
CGFloat alphaVal = 1.f;
[inv setSelector:@selector(setAlphaValue:)];
[inv setTarget:tabViewItem.view];
[inv setArgument:&alphaVal atIndex:2];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.5f invocation:inv repeats:NO];
Вот что я получаю в отладки консоли:
+[NSInvocation _invocationWithMethodSignature:frame:]: method signature argument cannot be nil
Edit: Я не знаю, почему кто-то подумал, что надо было вниз голосовать мой вопрос. Извините за попытку узнать что-то новое. Собственно, вот поправка к моему первоначальному вопросу: что я должен делать по-другому? Должен ли я просто удалить сообщение, как только выясню, в чем была моя проблема? Я попытался выполнить все этикетки переполнения стека, и я даже потратил время, чтобы оставить ответ вовремя, чтобы он помог кому-то другому. В следующий раз, должен ли я просто вернуться к моему вопросу и оставить ответ вроде: «nvm ... понял это. Thx?» Или я должен просто оставить его здесь, без ответа? Я уверен, что, черт возьми, знаю, что мне надоело нажимать на ссылки только для того, чтобы их приводили в неотвеченные сообщения.
Такая же проблема здесь через год. Спасибо за сообщение! –
@Jugale: Я сказал себе в ноябре прошлого года, что если мои неудачи могут спасти только одного человека от продувки дыры на их компьютере, я бы счел это победой. Ты только что получил меня! Я рад, что смогу помочь. Удачи! –
Решила ошибку для меня. Благодаря! –