Supercollider 3.9无法理解错误消息“ addr”

时间:2018-11-29 12:58:19

标签: supercollider

我已经使用Supercollider 3.8很长时间了,因此决定将版本更改为3.9.3, 但这给我们带来了问题,当前script.scd返回以下错误:

ERROR: Message 'addr' not understood.
RECEIVER:
Instance of Function {    (0000022C4663FF48, gc=8C, fmt=00, flg=00, set=02)
  instance variables [2]
    def : instance of FunctionDef - closed
    context : Frame (0000022C45014BD8) of Interpreter:functionCompileContext
}
ARGS:
CALL STACK:
    DoesNotUnderstandError:reportError
        arg this = <instance of DoesNotUnderstandError>
    Nil:handleError
        arg this = nil
        arg error = <instance of DoesNotUnderstandError>
    Thread:handleError
        arg this = <instance of Thread>
        arg error = <instance of DoesNotUnderstandError>
    Object:throw
        arg this = <instance of DoesNotUnderstandError>
    Object:doesNotUnderstand
        arg this = <instance of Function>
        arg selector = 'addr'
        arg args = [*0]
    OSCFuncAddrMessageMatcher:value
        arg this = <instance of OSCFuncAddrMessageMatcher>
        arg msg = [*33]
        arg time = 161.0420767
        arg testAddr = <instance of NetAddr>
        arg recvPort = 57121
    OSCMessageDispatcher:value
        arg this = <instance of OSCMessageDispatcher>
        arg msg = [*33]
        arg time = 161.0420767
        arg addr = <instance of NetAddr>
        arg recvPort = 57121
    Main:recvOSCmessage
        arg this = <instance of Main>
        arg time = 161.0420767
        arg replyAddr = <instance of NetAddr>
        arg recvPort = 57121
        arg msg = [*33]
^^ The preceding error dump is for ERROR: Message 'addr' not understood.
RECEIVER: a Function

1 个答案:

答案 0 :(得分:0)

如果没有生成错误的代码,就不可能诊断出问题。

通过错误消息的解释方式:

Message 'addr' not understood: 这意味着方法addr在某处被调用,例如something.addr()没有该名称的方法。

RECEIVER: Instance of Function: 这意味着“某物”是一个功能。

因此,在某个地方,您可能会传递一个函数作为参数,在该参数中,可能需要其他类型的对象(响应.addr的对象,因此可能是NetAddrServer)。