2011-08-24 77 views
1

我有一个大班。总之,它只有一个方法,其他类应该调用,然后根据接收到的数据类型,使用一堆方法来做不同的事情。 .m文件越来越大,我想分割它。我的想法是将这些方法分为不同的类别(每个类别都可以使用特定类型的数据)。所以我做到了。一个类可以使用在其某个类别中声明的方法吗?

我在里面没有任何改变的主要方法,因此线条如

[self methodNowInMyCategory]; 

仍然存在。但是,我现在在我的课程的主文件中收到警告,因为“instance method -methodNowInMyCatefory not found”。主要的.h文件是导入类别的.h文件,所以方法是可见的(Xcode为代码着色)。班级不承认他们是自己的。

有没有办法在一个类中使用一个类中声明的方法?如果不是,你会推荐我怎样解决我的问题?主要方法接收文件路径,打开文件,分析内容,然后发送一个或多个方法。

回答

5

您可以将您的类别声明拆分为一个或多个.h文件,然后在类的main .m中导入类别标题。

+0

也许我在问题中没有正确解释自己。 我创建的每个类别都有自己的.h和.m文件。所有.h文件已包含在主类中。 =/ – Solem

+1

啊哈!重读你的答案,我明白了:“在班级的主要**。**文件中导入[...]。这使得窍门=)谢谢! – Solem

+0

@Solem:您需要在.m文件中导入的原因是因为您的类别标题导入了类的标题,所以从类的标题导入它们会创建一个循环依赖项,这通常会导致“找不到方法”错误。 – Chuck

相关问题