Я хочу установить 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;
}