XCode 16.0 日本語化計画
ディスク上のバンドルディレクトリに保存されているコードとリソースの表現。
Apple はバンドルを使用して、アプリ、フレームワーク、プラグイン、およびその他の多くの特定の型のコンテンツを表します。バンドルは、含まれているリソースを明確に定義されたサブディレクトリに整理し、バンドル構造体は、プラットフォームとバンドルの型によって異なります。バンドルオブジェクトを使用すると、バンドルの構造を知らなくてもバンドルのリソースにアクセスできます。バンドルオブジェクトは、バンドル構造、ユーザの設定、利用可能なローカリゼーション、およびその他の関連要因を考慮して、アイテムを見つけるための単一のインターフェイスを提供します。
どの実行可能ファイルでも、バンドルオブジェクトを使用して、アプリのバンドル内または他の場所にある既知のバンドル内のリソースを見つけることができます。バンドルオブジェクトを使用して、コンテナディレクトリ内またはファイルシステムの他の部分にあるファイルを見つけることはできません。
バンドルオブジェクトを使用する一般的なパターンは以下のとおりです。
頻繁に使用されるリソースの一部の型は、バンドルなしで検索して開くことができます。たとえば、画像 (イメージ) をロードする場合は、アセットカタログにイメージを保存し、UIImage または NSImage の init(named:) メソッドを使用してロードします。同様に、文字列リソースの場合は、.strings ファイル全体を自分で読み込むのではなく、NSLocalizedString を使用して個々の文字列を読み込んで下さい。
リソースを見つける前に、まずそのリソースが含まれるバンドルを指定しなければなりません。Bundle クラスには多くの建造者がありますが、最もよく使用されるのは main です。main バンドルは、現在実行中のコードを含むバンドルディレクトリを表します。そのため、アプリの場合、main バンドルオブジェクトを使用すると、アプリに付属しているリソースにアクセスできます。
あなたのアプリがプラグイン、フレームワーク、またはその他のバンドルされたコンテンツを直接操作する場合は、このクラスの他のメソッドを使用して適切なバンドルオブジェクトを作成できます。あなたは既知の URL またはパスからバンドルオブジェクトをいつでも作成できますが、他のメソッドを使用すると、アプリが既に使用しているバンドルに簡単にアクセスできます。たとえば、フレームワークにリンクする場合は、init(for:) メソッドを使用して、そのフレームワークで定義されているクラスに基づいてフレームワークバンドルを見つけることができます。
Bundle オブジェクトを使用して、バンドル内の特定のリソースの場所を取得して下さい。リソースを検索するときは、少なくともリソースの名前とその型を指定して下さい。特定のサブディレクトリ内のリソースの場合は、そのディレクトリを指定することもできます。リソースが見つかった後、バンドルのルーチンは、ファイルを開くために使用できるパス文字列または URL を返します。
リスト 2 : バンドル内の単一のリソースの検索
Bundle オブジェクトは、ディスク上のリソースを検索するときに特定の検索パターンに従います。グローバルリソース (つまり、言語固有の .lproj ディレクトリにないリソース) が最初に返され、次に地域および言語固有のリソースが返されます。この検索パターンは、バンドルが以下の順序でリソースを検索することを意味します。
グローバルリソースは言語固有のリソースよりも優先されるため、特定のリソースのグローバルバージョンとローカライズバージョンの両方をあなたのアプリには決して含めないでください。リソースのグローバルバージョンが存在する場合、言語固有のバージョンは決して返されません。この優先順位の理由はパフォーマンスです。ローカライズされたリソースが最初に検索されると、バンドルオブジェクトはグローバルリソースを返す前に、存在しないローカライズされたリソースを検索して時間を浪費する可能性があります。
リソースファイルを検索するとき、バンドルオブジェクトは、返されるファイルを決定する際に、多くの標準ファイル名修飾子を自動的に考慮します。リソースは、特定のデバイス (~iphone、~ipad) または特定の画面解像度 (@2x、@3x) 用にタグ付けされている場合があります。必要なリソースの名前を指定するときは、これらの修飾子を含めないでください。バンドルオブジェクトは、基盤となるデバイスに最も適したファイルを選択します。詳細については、iPhone、iPad、Apple Watch のアプリ アイコン (App Icons on iPhone, iPad and Apple Watch.)を参照してください。
バンドルの構造は、ターゲットのプラットフォームと、構築するバンドルの型によって異なります。ほとんどの場合 (ただし、すべてではありません)、Bundle クラスはこの基礎構造を非表示にします。バンドルからリソースをロードするために使用するメソッドの多くは、適切な開始ディレクトリを自動的に見つけ、既知の場所にあるリソースを探します。また、このクラスのメソッドとプロパティを使用して、既知のバンドルディレクトリの場所を取得し、それらのディレクトリからリソースを取得することもできます。
iOS および macOS アプリのバンドル構造の詳細については、バンドルプログラミングガイド (Bundle Programming Guide) を参照してください。フレームワークバンドルの構造の詳細については、フレームワークプログラミングガイド (Framework Programming Guide) を参照してください。macOS プラグインの構造の詳細については、コード読み込みプログラミングトピックス (Code Loading Programming Topics) を参照してください。
現在の実行可能ファイルを含むバンドルオブジェクトを返します。
class var allFrameworks: [Bundle]
フレームワークを表すアプリケーションのすべてのバンドルの配列を返します。
class var allBundles: [Bundle]
アプリケーションのすべてのフレームワークでないバンドルの配列を返します。
指定されたクラスが関連している NSBundle オブジェクトを返します。
指定されたバンドル識別子を持つ NSBundle インスタンスを返します。
指定されたファイルの URL に対応する初期化された NSBundle オブジェクトを返します。
指定されたディレクトリに対応する初期化された NSBundle オブジェクトを返します。
func loadNibNamed(String, owner: Any?, options: [UINib.OptionsKey : Any]?) -> [Any]?
受信者のバンドルにある nib ファイルの内容をアーカイブ解除します。
指定されたファイル名と所有者を持つバンドルから nib をロードします。
func url(forResource: String?, withExtension: String?, subdirectory: String?) -> URL?
指定された名前と拡張子で識別され、与えられたバンドルディレクトリに存在するリソースファイルのファイル URL を返します。
func url(forResource: String?, withExtension: String?) -> URL?
指定された名前とファイル拡張子によって識別されるリソースのファイル URL を返します。
func urls(forResourcesWithExtension: String?, subdirectory: String?) -> [URL]?
指定されたファイル拡張子で識別され、指定されたバンドルのサブディレクトリ内にあるすべてのリソースのファイル URL の配列を返します。
指定されたバンドルのサブディレクトリにあり、グローバルリソースと指定されたローカリゼーションに関連したリソースに限定され、指定された名前とファイル拡張子で識別されるリソースのファイル URL を返します。
指定されたファイル名拡張子を持ち、指定されたリソースのサブディレクトリ内に存在し、グローバルリソースと指定されたローカリゼーションに関連したリソースに限定されたすべてのバンドルリソースのファイル URL を含む配列を返します。
指定されたバンドル内の指定された名前と拡張子を持つリソースのファイル URL を作成して返します。
class func urls(forResourcesWithExtension: String?, subdirectory: String?, in: URL) -> [URL]?
指定されたバンドル内の指定されたリソースのサブディレクトリに存在する、指定されたファイル名拡張子を持つすべてのバンドルリソースのファイル URL を含む配列を返します。
func path(forResource: String?, ofType: String?) -> String?
指定された名前とファイル拡張子によって識別されるリソースの完全なパス名を返します。
func path(forResource: String?, ofType: String?, inDirectory: String?) -> String?
指定された名前とファイル拡張子で識別され、指定されたバンドルのサブディレクトリにあるリソースの完全なパス名を返します。
指定された名前とファイル拡張子で識別され、指定されたバンドルのサブディレクトリにあり、グローバルリソースと指定されたローカリゼーションに関連したリソースに限定されたリソースの完全なパス名を返します。
func paths(forResourcesOfType: String?, inDirectory: String?) -> [String]
指定されたファイル名拡張子を持ち、リソースのサブディレクトリに存在するすべてのバンドルリソースのパス名を含む配列を返します。
指定されたファイル名拡張子を持ち、指定されたリソースのサブディレクトリ内に存在し、グローバルリソースと指定されたローカリゼーションに関連したリソースに限定されたすべてのバンドルリソースのファイルを含む配列を返します。
class func path(forResource: String?, ofType: String?, inDirectory: String) -> String?
指定された名前と拡張子で識別され、与えられたバンドルのディレクトリに存在するリソースファイルの完全なパス名を返します。
class func paths(forResourcesOfType: String?, inDirectory: String) -> [String]
指定された拡張子を持ち、指定されたパスにあるバンドルのディレクトリに存在するすべてのバンドルリソースのパス名を含む配列を返します。
func urlForImageResource(NSImage.Name) -> URL?
指定されたイメージリソースの場所を NSURL として返します。
func pathForImageResource(NSImage.Name) -> String?
指定されたイメージリソースファイルの場所を返します。
func image(forResource: NSImage.Name) -> NSImage?
指定された名前に関連した NSImage インスタンスを返します。このインスタンスは、イメージの異なる解像度バージョンを表す複数のファイルによってサポートされます。
func path(forSoundResource: NSSound.Name) -> String?
指定されたサウンドリソースファイルの場所を返します。
func localizedString(forKey: String, value: String?, table: String?) -> String
指定されたキーで指名され、指定された表に存在する文字列のローカライズされたバージョンを返します。
func contextHelp(forKey: NSHelpManager.ContextHelpKey) -> NSAttributedString?
バンドルのヘルプファイルから指定されたキーの文脈依存ヘルプを返します。
リソースファイルを含むバンドルのサブディレクトリのファイル URL。
受信者の実行可能ファイルのファイル URL。
var privateFrameworksURL: URL?
private なフレームワークを含むバンドルのサブディレクトリのファイル URL。
共有フレームワークを含む受信者のサブディレクトリのファイル URL。
plug-in を含む受信者のサブディレクトリのファイル URL。
func url(forAuxiliaryExecutable: String) -> URL?
受信者のバンドル内の指定された名前の実行可能ファイルのファイル URL を返します。
共有サポートファイルを含むバンドルのサブディレクトリのファイル URL。
バンドルの App Store 領収書のファイル URL。
リソースを含むバンドルのサブディレクトリの完全なパス名。
受信者の実行可能ファイルの完全なパス名。
var privateFrameworksPath: String?
private フレームワークを含むバンドルのサブディレクトリの完全なパス名。
var sharedFrameworksPath: String?
共有フレームワークを含むバンドルのサブディレクトリの完全なパス名。
var builtInPlugInsPath: String?
plug-in を含む受信者のサブディレクトリの完全なパス名。
func path(forAuxiliaryExecutable: String) -> String?
受信者のバンドル内の指定された名前の実行可能ファイルの完全なパス名を返します。
var sharedSupportPath: String?
共有サポートファイルを含むバンドルのサブディレクトリの完全なパス名。
受信者のバンドルディレクトリの完全な URL。
受信者のバンドルディレクトリの完全なパス名。
受信者のバンドル識別子。
var infoDictionary: [String : Any]?
バンドルの Info.plist ファイルから構築され、受信者に関する情報を含む辞書。
func object(forInfoDictionaryKey: String) -> Any?
受信者の情報プロパティリスト内の指定されたキーに関連した値を返します。
バンドル内に含まれるすべてのローカリゼーションのリスト。
var preferredLocalizations: [String]
バンドル内に含まれる優先ローカリゼーションの順序付きリスト。
var developmentLocalization: String?
開発言語のローカライズ。
var localizedInfoDictionary: [String : Any]?
バンドルのローカライズされたプロパティリストのキーを含む辞書。
class func preferredLocalizations(from: [String]) -> [String]
バンドルオブジェクトが現在のユーザのリソースを見つけるために使用する、指定されたリストから 1 つ以上のローカリゼーションを返します。
class func preferredLocalizations(from: [String], forPreferences: [String]?) -> [String]
ユーザの言語設定の候補の指定されたリストに基づいて、バンドルがローカライズされたコンテンツを提供するロケール識別子を返します。
func setPreservationPriority(Double, forTags: Set<String>)
バンドル内のタグ付けされたリソースセットを消去するための相対的な順序をシステムに伝えるヒント。
func preservationPriority(forTag: String) -> Double
指定されたタグの現在の保存優先度を返します。
func classNamed(String) -> AnyClass?
指定された名前の Class オブジェクトを返します。
バンドルの主クラス。
class let didLoadNotification: NSNotification.Name
クラスが動的にロードされたことを監視者に知らせる通知。
ロードされた各クラスの名前の配列に対応する didLoadNotification 通知の userInfo 辞書のキーとして使用される定数。
var executableArchitectures: [NSNumber]?
バンドルの実行可能ファイルでサポートされているアーキテクチャの型を示す数値の配列。
バンドルの実行可能コードが正常に読み込まれたかどうかを示すブール値を返します。
コードがまだロードされていない場合は、バンドルの実行可能コードを実行中のプログラムに動的にロードします。
バンドルの実行可能コードをロードし、エラーがあれば返します。
受信者に関連したコードのロードを解除します。
バンドルのロードの状況。
バンドルの実行可能コードがサポートする CPU の型を記述する定数。
var NSExecutableErrorMinimum: Int
実行可能ファイルに関連するエラー用に予約されているエラーコードの範囲の始まり。
var NSExecutableNotLoadableError: Int
実行可能な型は現在のプロセスではロードできません。
var NSExecutableArchitectureMismatchError: Int
実行可能ファイルは、現在のプロセスと互換性のあるアーキテクチャを提供しません。
var NSExecutableRuntimeMismatchError: Int
実行可能ファイルには、現在のプロセスと互換性のない Objective-C 実行時情報が含まれています。
var NSExecutableLoadError: Int
何らかの特定されない理由により実行可能ファイルはロードできません。
var NSExecutableLinkError: Int
リンクの問題により実行可能ファイルが失敗しました。
var NSExecutableErrorMaximum: Int
実行可能ファイルに関連するエラー用に予約されているエラーコードの範囲の終わり。