0

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

"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 而不将类别暴露给它并且没有收到警告的正确方法是什么?

4

1 回答 1

0

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

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

可能有一些方法可以用类别来完成您所询问的事情,但充其量,您会降低代码的可读性,以达到与代码无关的目的。版本控制系统需要一些时间来适应,但当您在一个多开发人员团队中时,它们是完全值得的。

于 2012-07-30T22:11:43.433 回答