0

我想安装 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!

我收到了很多警告,但这是仅有的两个错误。你能告诉我如何解决吗?

编辑:这些是相应的功能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;
}
4

0 回答 0