在 Objective-C 中,如何为组合对象创建 typedef?

问题描述

我正在使用 OCMProtocolMock 来模拟协议。经过一些清理,我的对象符合 3 个协议:

id<MyProtocolA,MyProtocolB,MyProtocolC>

OCMProtocolMock 只需要 1 个参数,所以我想为我的新组合对象制作一个 typedef 以传递给 OCMProtocolMock

类似于:

typedef id<MyProtocolA,MyProtocolC> CombinedProtocol;

id<CombinedProtocol> _myCombinedobject = OCMProtocolMock(@protocol(CombinedProtocol));

但这会引发编译器错误,说它找不到“CombinedProtocol”的协议声明。

有什么想法吗?谢谢!

解决方法

一个可能的解决方案是定义一个符合所有其他协议的协议。

app.UseBlazorFrameworkFiles("/app")

就这样使用它

@protocol CombinedProtocol <MyProtocolA,MyProtocolB,MyProtocolC>

@end

并完全忽略 typedef