我目前正在研究一个世代odicetagcode子类,它拦截某些消息,也不会将它们转发给任何人,而只是处理它们,因此这些方法永远不会真正存在。问题所介绍,编译器开始抱怨丢失的方法实现,我无法弄清楚如何停止它,将存根方法添加到接口中只是为了让编译器关闭不起作用,因为方法不起作用是任意形成的,我不知道他们前进(让它更具体地,我要求项目)。

理想情况下,我想告诉编译器根本不应该对此特定类进行任何方法检查,但由于这似乎相当不可能,我也对世代或任何其他方式感到高兴(哪种方式包括将编译器关闭整个项目/文件中的每个警告!)

有帮助吗?

解决方案

您的交换机语句并不是任意,它们只能具有任意长度。对于广泛的长度,您可以继续向前申报,以便为编译器(而且您将获得错误检查,如果您刚刚关闭警告,您就不会出现错误检查)。例如:

typedef void (^ObjCCaseBlock)();

@interface NSObject ()
- (id)switch;
- (void)case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
@end
.

重复适用于可能发生的级别(并且如果遇到问题,则可以添加级别)。这有点繁琐,但并不困难。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top