差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
translation:adc:cocoa:foundation:introduction_to_dynamically_loading_code:0900_componentizing [2014-08-29 12:49] Decomo Page moved from 翻訳:adc:cocoa:foundation:コード読込みプログラミング概論:0900_componentizing to translation:adc:cocoa:foundation:introduction_to_dynamically_loading_code:0900_componentizing |
translation:adc:cocoa:foundation:introduction_to_dynamically_loading_code:0900_componentizing [2020-12-04 13:30] (現在) Decomo |
||
---|---|---|---|
行 1: | 行 1: | ||
- | <align right> | + | <WRAP rightalign> |
====== 複数バンドルを使うアプリケーションの構築 ====== | ====== 複数バンドルを使うアプリケーションの構築 ====== | ||
行 27: | 行 27: | ||
アプリケーションで、潜在的に多くの場所の読込み可能バンドルに含まれるクラスのインスタンスにアクセスする必要があるかもしれません。 | アプリケーションで、潜在的に多くの場所の読込み可能バンドルに含まれるクラスのインスタンスにアクセスする必要があるかもしれません。 | ||
そのようなオブジェクトを直接指すポインタを使う場合、使用前にポインタがオブジェクトで初期化されているかどうか確認する必要があります。 | そのようなオブジェクトを直接指すポインタを使う場合、使用前にポインタがオブジェクトで初期化されているかどうか確認する必要があります。 | ||
- | これはオブジェクトを使用毎に余計な手順を追加し、< | + | これはオブジェクトを使用毎に余計な手順を追加し、'' |
バンドルから読み込まれた全てのインスタンスについてアクセサメソッドを追加することにより、こうした複雑性を避けることが出来ます。 | バンドルから読み込まれた全てのインスタンスについてアクセサメソッドを追加することにより、こうした複雑性を避けることが出来ます。 | ||
行 64: | 行 64: | ||
コードが行っていること: | コードが行っていること: | ||
- | - インスタンス変数< | + | - インスタンス変数'' |
- バンドルのパスを見つけます。この例ではパスをハードコードしていますが、殆どのアプリケーションにおいてより洗練された方法で指定されます。 | - バンドルのパスを見つけます。この例ではパスをハードコードしていますが、殆どのアプリケーションにおいてより洗練された方法で指定されます。 | ||
- バンドルのパスに対応するNSBundleオブジェクトを取得します。このメッセージは、バンドルに対応するNSBundleが一つもなければ暗黙的にNSBundleを生成します。 | - バンドルのパスに対応するNSBundleオブジェクトを取得します。このメッセージは、バンドルに対応するNSBundleが一つもなければ暗黙的にNSBundleを生成します。 | ||
- そのNSBundleオブジェクトが適切であれば、バンドルの主要クラスを取得します。バンドルの実行可能コードが読み込まれていなければ、このメッセージはコードを遅延読み込みします。 | - そのNSBundleオブジェクトが適切であれば、バンドルの主要クラスを取得します。バンドルの実行可能コードが読み込まれていなければ、このメッセージはコードを遅延読み込みします。 | ||
- | - 主要クラスが存在すれば、< | + | - 主要クラスが存在すれば、'' |
- | - 最後に、< | + | - 最後に、'' |
===== 読込み可能バンドルによるモジュール化 ===== | ===== 読込み可能バンドルによるモジュール化 ===== | ||
行 133: | 行 133: | ||
- Drag the bundle from the list of project files to the box labeled “Files: | - Drag the bundle from the list of project files to the box labeled “Files: | ||
- | これで、アプリケーションビルド時に、コードから容易にアクセス可能なアプリケーションバンドルの< | + | これで、アプリケーションビルド時に、コードから容易にアクセス可能なアプリケーションバンドルの'' |
この追加コンポーネント用コピーフェイズに、追加バンドルを追記する事が出来ます。 | この追加コンポーネント用コピーフェイズに、追加バンドルを追記する事が出来ます。 | ||
行 139: | 行 139: | ||
=== バンドルコードの読み込み === | === バンドルコードの読み込み === | ||
- | アプリケーションの< | + | アプリケーションの'' |
大規模アプリケーションの構成要素として多数の小さなバンドルを用いるアプリケーションにおいて、コードにアクセスする最も簡単な方法は遅延アクセサメソッドを通す事です。 | 大規模アプリケーションの構成要素として多数の小さなバンドルを用いるアプリケーションにおいて、コードにアクセスする最も簡単な方法は遅延アクセサメソッドを通す事です。 | ||
行 177: | 行 177: | ||
- Starting PointウィンドウのCocoaグループからEmptyを選択する | - Starting PointウィンドウのCocoaグループからEmptyを選択する | ||
- FileメニューからSave As…を選択する | - FileメニューからSave As…を選択する | ||
- | - バンドルプロジェクトディレクトリ内の// | + | - バンドルプロジェクトディレクトリ内の// |
- Saveをクリック | - Saveをクリック | ||
- In the Add File sheet, select the bundle target under Add to Targets, and click Add. | - In the Add File sheet, select the bundle target under Add to Targets, and click Add. | ||
行 191: | 行 191: | ||
- Add a new window object from the Cocoa-Windows palette and construct it with user interface elements. | - Add a new window object from the Cocoa-Windows palette and construct it with user interface elements. | ||
- | - File's Ownerの< | + | - File's Ownerの'' |
最後に、Xcodeでウィンドウコントローラクラスのコードを書きます。 | 最後に、Xcodeでウィンドウコントローラクラスのコードを書きます。 | ||
行 244: | 行 244: | ||
このサンプルには潜在的に2つの遅延読み込み操作が含まれています。 | このサンプルには潜在的に2つの遅延読み込み操作が含まれています。 | ||
- | 1つ目は、< | + | 1つ目は、'' |
- | 2つ目は、< | + | 2つ目は、'' |