iOSプロジェクトで使用したプロジェクト構造を簡単に紹介します。まず、これは仕様ではなく、プロジェクトの構造にすぎないということです。問題や不規則な点がたくさんあるかもしれません。共有するために参照用に提供しているだけです。また、フィードバックをお待ちしています。改善を手伝ってください!
次の図は、私のiOSプロジェクトの一般的なエンジニアリング構造です。モデル全体は依然としてMVC構造に準拠していますが、サブディビジョン処理は各レイヤーで行われます。以下に簡単な概要を示します。
アプリケーション: AppDelegateといくつかのシステム定数およびシステム構成ファイルがこのグループに配置されます。
ベース:親ViewControllerやパブリックトップレベルのカスタム親親クラスなど、いくつかの基本的な親クラス通常、他のモジュールのクラスは、これらのクラスの一部から継承します。
Controller: ViewControllerが配置されているシステムコントロールレイヤーはすべて、Group BaseのBaseViewControllerまたはBaseTableViewControllerから継承されます。
ビュー:システムのビューレイヤーでは、コードを介してインターフェイスを実装することを好むため、ここでのビューはUIViewから継承されます。ViewControllerからビューを分離してここに配置し、ViewControllerを合理化しました。
モデル:システム内のエンティティ。クラスを通じてシステム内のいくつかの役割とビジネスを記述し、これらの役割とビジネスに対応する処理ロジックを含みます。
ハンドラー:システムの複雑なビジネスロジックの処理を担当するシステムビジネスロジックレイヤー。上位の呼び出し元はViewControllerです。
ストレージ:シンプルなデータストレージ、主にいくつかのキーと値のペアのストレージ、およびNSUserDefaultとplistアクセスのカプセル化を含む、システムの外部ファイルへのアクセス。
ネットワーク: AFNetworkingベースのネットワーク処理層をカプセル化するネットワーク処理層(RTHttpClient)は、ブロックを介して処理結果のコールバックを実現し、上位の呼び出し元はハンドラー層です。
データベース:FMDBに基づくSQLiteデータベースアクセスおよび管理(RTDatabaseHelper)をカプセル化するデータレイヤーは、モデルレイヤーオブジェクトに基づく外部呼び出しインターフェイスを提供し、データストレージプロシージャをカプセル化します。
Utils:主にいくつかの一般的なシステムツールを配置するシステムツール(AppUtils)。
カテゴリ:カテゴリ、既存のシステムクラスおよびカスタムクラスの拡張。
リソース:写真、plistファイルなどを含むリソースライブラリ。