我制作图表,我想制作一个系统,用于指定沿边缘节点之间转换的条件。我不确定方法签名应该是什么样子,因为不同的转换会有不同的参数。
所以感兴趣的两个功能是:
-addEdge(NSString* firstState, NSString* secondState,NSString* edgeName, block (?))
-(bool)transition(NSString* edgeName, parameters (?) ... )
addEdge()传入一个块,该块定义firstState和secondState之间的转换条件,并为其指定名称。
transition()接受参数列表并将它们应用于与边名相关联的块。
在这种情况下,方法签名应该是什么样的?
答案 0 :(得分:0)
块可以接受变量参数,虽然接受NSArray
可以说更简单。
typedef void(^VarArgsBlock)(int argumentLength, ...);
答案 1 :(得分:0)
您无法使用任意参数声明块。但是你总是可以添加 id 参数,这是你想要的。它可能是 NSArray 或您定义的某些特定类的对象,您想要的任何内容。因此,您不需要任何 varargs 。