ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 読込み可能バンドルの作成 プロジェクトの作成 ソースファイルとリソースの準備 ターゲット設定の変更 原文:Code Loading Programming Topics: Creating Loadable Bundles 読込み可能バンドルの作成 本章では、XcodeによるCocoaの読込み可能バンドル─アプリケーションコンポーネントやプラグイン─の作り方を解説します。 Xcodeは読込み可能バンドル作成用のグラフィカルなツールを提供します。 読込み可能バンドルのビルドはアプリケーションのビルドと非常に良く似ています。 工程はは基本的な3つのステップから構成されます: Xcodeテンプレートから新規プロジェクトを作る ソースファイルを準備し編集する バンドルに関する情報にあわせてプロジェクト設定を変更する 以後の節でこれら工程の詳細を解説します。 プロジェクトの作成 読込み可能バンドルプロジェクトの作成は、アプリケーションプロジェクトの作成と大変良く似ています。適切なプロジェクトテンプレートを選択するだけです。 読込み可能バンドルプロジェクトを作成するには、以下の手順を踏みます: Xcodeを起動 「ファイル」メニューから「新規プロジェクト…」を選択 テンプレートリストから「Cocoa Bundle」を選択 「次へ」をクリック プロジェクトの保存場所を選択し「完了」をクリック ソースファイルとリソースの準備 Cocoa Bundleテンプレートから作成した新規プロジェクトは1つのソースファイル、main.cとCocoaフレームワークへの参照を持っています。 殆どの場合、開発者はこのファイルを削除し、自分のソースを追加することでしょう。 Cocoaアプリケーションがそうであるように、新しいCocoaクラスや他のソースファイルの追加と同様、リソースやフレームワークの追加が可能です。 Cocoaにおける最小の読込み可能バンドルは、2つのファイル─1つがインタフェース(MyClass.h)で、もう1つが実装ファイル(MyClass.m)─による1つのクラスで構成されます。 ターゲット設定の変更で記述のあるように、バンドル内のクラスのうち1つを主要クラスに設定するべきです。 主要クラスが選択されていなければ、NSBundleは(Xcodeウィンドウに表示される)プロジェクトの最初のクラスを主要クラスとして使用します。 読込み可能バンドルがプラグインの場合、ホストアプリケーション開発者は大抵、フレームワークの中でプラグインアーキテクチャのインタフェースを提供します。 このフレームワークは典型的に、全てのプラグインの主要クラスが継承するクラス、ないし主要クラスが採用する(形式または非形式の)プロトコルを持ちます。 ターゲット設定の変更 バンドルが“善良なコンポーネント”(a good citizen)となるよう、バンドルの情報プロパティリストで2つの設定をする必要があります: バンドル識別子 主要クラス バンドル識別子はシステム上の全てのバンドル─アプリケーション、カーネル拡張、全ての読込み可能バンドル、そしてその他の種類のバンドルで一意の識別子として働きます。 バンドル識別子はcom.apple.screensaver.Abstractのように、DNS風の名前を逆転させたものにしなければなりません。 主要クラスはCocoaバンドルのエントリーポイントとして働きます。 名前衝突の防止で解説するように、グローバルで一意となるような方法で名付けなければなりません。 主要クラスが選択されていなければ、NSBundleが勝手に選びます。 これら設定を変更するには、以下の手順を踏んで下さい: プロジェクトの「ターゲット」ペインを開く 「ターゲット」グループのターゲット一覧からバンドルを選ぶ Under Info.plist Entries > Simple View, select Basic Information. Enter the desired bundle identifier into the text field labeled “Identifier:”. Also under Info.plist Entries > Simple View, select Cocoa-Specific. Enter the name of the principal class into the text field labeled “Principal class:”. translation/adc/cocoa/foundation/introduction_to_dynamically_loading_code/0800_creatingbundles.txt 最終更新: 2020-12-04 13:36by Decomo