使用Category将ViewController拆分为多个.m的正确方法

时间:2012-07-30 21:05:25

标签: objective-c

我想将视图控制器中的代码拆分为多个编码器的类别,以便在视图控制器上工作而无需编辑同一个文件。在制作类别时我收到以下警告:

"Category is implementing a method which will also be implemented by its primary class"

我的类别.h文件:

#import "MyClass.h"
@interface MyClass (CategoryName)
@end

我的类别.m文件:

#import "MyClass+CategoryName.h"

@implementation MyClass (CategoryName)
-(void) methodThatIsUsedAndExposedByMyClass { //a class that is made public by declaring in MyClass.h
}
@end

我在视图控制器MyOtherClass中实例MyClass。设置/导入MyClass.h到MyOtherClass的正确方法是什么,而不暴露类别并且没有收到警告?

1 个答案:

答案 0 :(得分:0)

老实说,鉴于您关注的关键是开发人员工作流程,您应该寻找基于工作流而不是代码的解决方案。你看过git(http://git-scm.com)了吗?它是一个分散的版本控制系统,通常非常适合自动合并来自多个来源的更改。只要每个开发人员处理代码的不同部分,他们都可以对同一个文件进行更改而不会导致问题。

擅长的git是将多个更改合并到自动生成的文件,如project.pbxproj。但是,只有在添加和删除文件时才会出现这种情况 - 当两个或更多人修改同一个.m文件时,您只需要git pull然后git push,它就会为你计算插入和删除。

可能有一些方法可以用类别来处理您所要求的内容,但最好的情况是,为了达到与代码无关的目的,您将使代码的可读性降低。版本控制系统需要一些时间来适应,但当你在一个多开发团队时,它们是完全值得的。