2

我有一个文件ViewMessages.m,它变得非常冗长。我想重构并将我的部分方法放入一个单独的文件中。似乎类别是正确的方法,所以我创建了一个Categoryon ViewMessagescalledDataEngineViewMessages

它创建了 2 个文件,DataEngineViewMessages.h并且DataEngineViewMessages.m

我的问题:我需要#import "DataEngineViewMessage.h"在我的原始方法中ViewMessage.h还是.m为了访问我的新方法?

4

2 回答 2

3

不在 .h 文件中。类别标头应导入ViewMessages.h如果需要,应将类别标头导入ViewMessages.m. 这可以防止任何类型的循环。

通常,您希望区分应该公开的类别方法(可能在标头中定义ViewMessages+DataEngine.h)和供内部使用的类别方法(在标头中定义可能类似于ViewMessages+Private.h)。前者不应该被包含,ViewMessages而后者应该(同样,在 .m 文件中)。

于 2014-03-11T23:10:33.457 回答
1

如果编译器看不到方法定义,任何调用方法的代码都会引发编译器警告。如果编译器无法准确确定如何处理返回类型并且您期望它是原子 C 类型,它们也可能会引发错误。

在保持外部接口不变方面,您可能只需#import在主类的头文件底部添加一个用于您的类别方法。

于 2014-03-11T23:08:47.873 回答