首页 > 解决方案 > Supercollider 3.9 中无法理解错误消息“addr”

问题描述

我用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

标签: supercollider

解决方案


如果没有生成错误的代码,就无法诊断问题。

通过对错误消息的解释:

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

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

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


推荐阅读