При установке RubyCocoa я получил ошибку «ошибка: слишком много аргументов для вызова функции, ожидается 0, есть 3» - PullRequest
0 голосов
/ 09 июля 2020

Я хочу установить RubyCocoa. Я выполняю следующие шаги.

% brew install ruby
・Add /usr/local/opt/ruby/bin to the path
% ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
% git clone https://github.com/rubycocoa/rubycocoa.git
% cd rubycocoa
% gem install rake-compiler xcjobs
% rake
../../../../ext/rubycocoa/OverrideMixin.m:303:17: error: too many arguments to function call,
      expected 0, have 3
  ret = (*simp)(rcv, method, arg0);
        ~~~~~~~ ^~~~~~~~~~~~~~~~~
../../../../ext/rubycocoa/OverrideMixin.m:317:13: error: too many arguments to function call,
      expected 0, have 3
    (*simp)(rcv, method, arg0);
    ~~~~~~~ ^~~~~~~~~~~~~~~~~
11 warnings and 2 errors generated.
make: *** [OverrideMixin.o] Error 1
rake aborted!

Я получил много предупреждений, но это единственные две ошибки. Не могли бы вы рассказать мне, как это исправить?

EDIT: Это соответствующие функции в OverrideMixin.m:299:

static id imp_methodSignatureForSelector (id rcv, SEL method, SEL arg0)
{
  id ret;
  IMP simp = super_imp(rcv, method, (IMP)imp_methodSignatureForSelector);
  ret = (*simp)(rcv, method, arg0);
  if (ret == nil)
    ret = [get_slave(rcv) methodSignatureForSelector: arg0];
  return ret;
}

static id imp_forwardInvocation (id rcv, SEL method, NSInvocation* arg0)
{
  IMP simp = super_imp(rcv, method, (IMP)imp_forwardInvocation);
  id slave = get_slave(rcv);

  if ([slave respondsToSelector: [arg0 selector]])
    [slave forwardInvocation: arg0];
  else
    (*simp)(rcv, method, arg0);
  return nil;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...