web-dev-qa-db-ja.com

必要なフレームワークと静的ライブラリ

Building Modern Frameworks は言う すべてのアプリにはカスタムフレームワークの独自のコピーがある 。 XcodeがiOSフレームワークをサポートするようになったので、 frameworksarestatic libraries であることはまだ正しいですか もっと便利 ?それが本当なら、なぜ静的ライブラリテンプレートを選択するのですか?それ以外の場合、必要なすべてのカスタムフレームワークを一度静的ライブラリに変換する必要があります Swiftは静的ライブラリをサポートしています

14
ma11hew28

フレームワークは、静的および動的共有ライブラリと同じ目的を果たします。つまり、フレームワークは、特定のタスクを実行するためにアプリケーションから呼び出すことができるルーチンのライブラリを提供します。たとえば、Application KitとFoundationフレームワークは、Cocoaのクラスとメソッドのプログラムインターフェイスを提供します。フレームワークには、静的リンクライブラリや他のタイプの動的共有ライブラリに比べて、次の利点があります。

  1. フレームワークは、関連するが個別のリソースをグループ化します。このグループ化により、これらのリソースのインストール、アンインストール、および検索が容易になります。

  2. フレームワークには、ライブラリよりも幅広いリソースタイプを含めることができます。たとえば、フレームワークには、関連するヘッダーファイルとドキュメントを含めることができます。

  3. フレームワークの複数のバージョンを同じバンドルに含めることができます。これにより、古いプログラムとの下位互換性を保つことができます。

  4. フレームワークの読み取り専用リソースのコピーは、それらのリソースを使用しているプロセスの数に関係なく、常に物理的にメモリ内に常駐します。このリソースの共有により、システムのメモリフットプリントが削減され、パフォーマンスの向上に役立ちます。

here から抜粋したこの抜粋。

12
dev gr

here からの抜粋。

フレームワークとライブラリの違いは何ですか?

  • 制御の反転は、フレームワークをライブラリとは異なるものにする重要な部分です。ライブラリからメソッドを呼び出すときは制御できますが、フレームワークではコントロールが反転し、フレームワークがコードを呼び出します。 (たとえば、GUIフレームワークはイベントハンドラーを通じてコードを呼び出します)
  • ライブラリーは、本質的に、呼び出し可能な(クラスに編成された)関数のセット(明確に定義された操作)です。それぞれがいくつかの作業を行ってから、コントロールをクライアントに返します
  • フレームワークは、より多くの動作が組み込まれた抽象的なデザインを具現化します。それを使用するには、サブクラス化するか、コードをプラグインすることにより、フレームワークのさまざまな場所に動作を挿入する必要があります。フレームワークのコードは、これらのポイントでコードを呼び出します。
  • フレームワークは、アプリケーションがスケルトンに入力することによって操作の要点を定義するスケルトンと見なすこともできます。スケルトンにはパーツをリンクするコードがまだあります
4
Maverick

動的フレームワークの使用は、Swift専用です(つまり、iOS 7と動的フレームワークでビルドを送信することはできません)。

IOS 7のサポートが必要な場合は、静的ライブラリとobjcを使用する前に

動的フレームワークと静的ライブラリは別物です。フレームワークは、ディレクトリがあり、リソース、ビュー、クラス、およびライブラリを含めることができるバンドルです

静的ライブラリは実行可能コードのみです

また、独自のコード内の静的ライブラリのコードを使用します。フレームワークの場合、彼はコードを使用し、実行方法と処理を処理します。

このリンクはあなたを助けることができます http://www.knowstack.com/framework-vs-library-cocoa-ios/

3
Mariano