translation:adc:cocoa:foundation:introduction_to_dynamically_loading_code:0900_componentizing

差分

このページの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>原文:[[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingCode/Tasks/Componentizing.html|Code Loading Programming Topics: Building Applications with Multiple Bundles]]</align>+<WRAP rightalign>原文:[[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingCode/Tasks/Componentizing.html|Code Loading Programming Topics: Building Applications with Multiple Bundles]]</WRAP>
  
 ====== 複数バンドルを使うアプリケーションの構築 ====== ====== 複数バンドルを使うアプリケーションの構築 ======
行 27: 行 27:
 アプリケーションで、潜在的に多くの場所の読込み可能バンドルに含まれるクラスのインスタンスにアクセスする必要があるかもしれません。 アプリケーションで、潜在的に多くの場所の読込み可能バンドルに含まれるクラスのインスタンスにアクセスする必要があるかもしれません。
 そのようなオブジェクトを直接指すポインタを使う場合、使用前にポインタがオブジェクトで初期化されているかどうか確認する必要があります。 そのようなオブジェクトを直接指すポインタを使う場合、使用前にポインタがオブジェクトで初期化されているかどうか確認する必要があります。
-これはオブジェクトを使用毎に余計な手順を追加し、<ilcode>nil</ilcode>ポインタにメッセージを送るといったような見つけ難い潜在的なミスを誘います。+これはオブジェクトを使用毎に余計な手順を追加し、''nil''ポインタにメッセージを送るといったような見つけ難い潜在的なミスを誘います。
  
 バンドルから読み込まれた全てのインスタンスについてアクセサメソッドを追加することにより、こうした複雑性を避けることが出来ます。 バンドルから読み込まれた全てのインスタンスについてアクセサメソッドを追加することにより、こうした複雑性を避けることが出来ます。
行 64: 行 64:
 コードが行っていること: コードが行っていること:
  
-  - インスタンス変数<ilcode>_bundleObject</ilcode>が有効か確認します。有効なら<ilcode>if</ilcode>文の中身はスキップされます。+  - インスタンス変数''_bundleObject''が有効か確認します。有効なら''if''文の中身はスキップされます。
   - バンドルのパスを見つけます。この例ではパスをハードコードしていますが、殆どのアプリケーションにおいてより洗練された方法で指定されます。   - バンドルのパスを見つけます。この例ではパスをハードコードしていますが、殆どのアプリケーションにおいてより洗練された方法で指定されます。
   - バンドルのパスに対応するNSBundleオブジェクトを取得します。このメッセージは、バンドルに対応するNSBundleが一つもなければ暗黙的にNSBundleを生成します。   - バンドルのパスに対応するNSBundleオブジェクトを取得します。このメッセージは、バンドルに対応するNSBundleが一つもなければ暗黙的にNSBundleを生成します。
   - そのNSBundleオブジェクトが適切であれば、バンドルの主要クラスを取得します。バンドルの実行可能コードが読み込まれていなければ、このメッセージはコードを遅延読み込みします。   - そのNSBundleオブジェクトが適切であれば、バンドルの主要クラスを取得します。バンドルの実行可能コードが読み込まれていなければ、このメッセージはコードを遅延読み込みします。
-  - 主要クラスが存在すれば、<ilcode>_bundleObject</ilcode>インスタンス変数の確保と初期化を行います。 +  - 主要クラスが存在すれば、''_bundleObject''インスタンス変数の確保と初期化を行います。 
-  - 最後に、<ilcode>_bundleObject</ilcode>を返します。読み込み処理に失敗すると、<ilcode>_bundleObject</ilcode>の値はnilのままです。+  - 最後に、''_bundleObject''を返します。読み込み処理に失敗すると、''_bundleObject''の値はnilのままです。
  
 ===== 読込み可能バンドルによるモジュール化 ===== ===== 読込み可能バンドルによるモジュール化 =====
行 133: 行 133:
   - Drag the bundle from the list of project files to the box labeled “Files:” in the Copy Files section of the target pane.   - Drag the bundle from the list of project files to the box labeled “Files:” in the Copy Files section of the target pane.
  
-これで、アプリケーションビルド時に、コードから容易にアクセス可能なアプリケーションバンドルの<ilcode>PlugIns</ilcode>ディレクトリに、バンドルがコピーされます。+これで、アプリケーションビルド時に、コードから容易にアクセス可能なアプリケーションバンドルの''PlugIns''ディレクトリに、バンドルがコピーされます。
 この追加コンポーネント用コピーフェイズに、追加バンドルを追記する事が出来ます。 この追加コンポーネント用コピーフェイズに、追加バンドルを追記する事が出来ます。
  
行 139: 行 139:
 === バンドルコードの読み込み === === バンドルコードの読み込み ===
  
-アプリケーションの<ilcode>PlugIns</ilcode>ディレクトリからバンドルを読み込む汎用的な工程については、“[[翻訳:adc:cocoa:foundation:コード読込みプログラミング概論:バンドルの読み込み]]”でも解説しています。+アプリケーションの''PlugIns''ディレクトリからバンドルを読み込む汎用的な工程については、“[[翻訳:adc:cocoa:foundation:コード読込みプログラミング概論:バンドルの読み込み]]”でも解説しています。
  
 大規模アプリケーションの構成要素として多数の小さなバンドルを用いるアプリケーションにおいて、コードにアクセスする最も簡単な方法は遅延アクセサメソッドを通す事です。 大規模アプリケーションの構成要素として多数の小さなバンドルを用いるアプリケーションにおいて、コードにアクセスする最も簡単な方法は遅延アクセサメソッドを通す事です。
行 177: 行 177:
   - Starting PointウィンドウのCocoaグループからEmptyを選択する   - Starting PointウィンドウのCocoaグループからEmptyを選択する
   - FileメニューからSave As…を選択する   - FileメニューからSave As…を選択する
-  - バンドルプロジェクトディレクトリ内の//言語//<ilcode>.lproj/</ilcode>を開く。//言語//はnibファイルの言語コードで、例えば<ilcode>English</ilcode><ilcode>en</ilcode>など。+  - バンドルプロジェクトディレクトリ内の//言語//''.lproj/''を開く。//言語//はnibファイルの言語コードで、例えば''English''''en''など。
   - 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の<ilcode>window</ilcode>アウトレットを先ほど作ったウィンドウと接続し、コントローラと他のユーザーインタフェース部品との間で必要な接続を追加する。+  - File's Ownerの''window''アウトレットを先ほど作ったウィンドウと接続し、コントローラと他のユーザーインタフェース部品との間で必要な接続を追加する。
  
 最後に、Xcodeでウィンドウコントローラクラスのコードを書きます。 最後に、Xcodeでウィンドウコントローラクラスのコードを書きます。
行 244: 行 244:
  
 このサンプルには潜在的に2つの遅延読み込み操作が含まれています。  このサンプルには潜在的に2つの遅延読み込み操作が含まれています。 
-1つ目は、<ilcode>pricipalClass</ilcode>メッセージが送信された時に、ウィンドウコントローラのコードが読み込まれます。 +1つ目は、''pricipalClass''メッセージが送信された時に、ウィンドウコントローラのコードが読み込まれます。 
-2つ目は、<ilcode>showWindow:</ilcode>メソッドが送信された時に、ウィンドウのnibファイルが読み込まれます。+2つ目は、''showWindow:''メソッドが送信された時に、ウィンドウのnibファイルが読み込まれます。
  
  • translation/adc/cocoa/foundation/introduction_to_dynamically_loading_code/0900_componentizing.1409284182.txt.gz
  • 最終更新: 2014-08-29 12:49
  • by Decomo