0

複数のコーダーが同じファイルを編集せずにView Controllerで作業できるように、View Controllerのコードをカテゴリに分割したいと思います。カテゴリを作成すると、次の警告が表示されます。

"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 のような自動生成されたファイルに複数の変更をマージすることです。しかし、それはファイルを追加したり削除したりするときにしか出てこないことがあります -- 2 人以上の人が同じ .m ファイルを変更している場合、あなたがしなければならないことはgit pullとだけgit pushで、挿入と削除を計算してくれます。

カテゴリで質問していることを実行する方法はおそらくありますが、せいぜい、コードとは関係のない目的を果たすために、コードを読みにくくすることです。バージョン管理システムは慣れるまでに時間がかかりますが、複数の開発者チームに所属している場合は、それだけの価値があります。

于 2012-07-30T22:11:43.433 に答える