class var main: Bundle
class var allFrameworks : [Bundle]
class var allBundles : [Bundle]
Availability 有効性
Technology
class Bundle : NSObject
Apple uses bundles to represent apps, frameworks, plug-ins, and many other specific types of content. Bundles organize their contained resources into well-defined subdirectories, and bundle structures vary depending on the platform and the type of the bundle. By using a bundle object, you can access a bundle's resources without knowing the structure of the bundle. The bundle object provides a single interface for locating items, taking into account the bundle structure, user preferences, available localizations, and other relevant factors. Appleはバンドルを使って、アプリ、フレームワーク、プラグイン、そして多くの他の特定の型のコンテンツを表現します。これらバンドルはそれらの含むリソースをうまく定義されたいくつかの下位ディレクトリへと組織化します、そしてバンドル構造はプラットホームとバンドルの型によって異なります。バンドルオブジェクトを使うことによって、あなたはバンドルの持つリソースにアクセスすることが、バンドルの構造を知ることなしに可能です。バンドルオブジェクトは、単一のインターフェイスをさまざまな項目の所在を突き止めるのに提供していて、それはバンドル構造、ユーザ環境設定、利用可能な現地化、そして他の関連因子を考慮します。
Any executable can use a bundle object to locate resources, either inside an app’s bundle or in a known bundle located elsewhere. You don't use a bundle object to locate files in a container directory or in other parts of the file system. 何らかの実行可能ファイルは、バンドルオブジェクトを使ってリソースを捜し出すことが、アプリの持つバンドル内部でまたはどこか他に位置する既知のバンドルの中でのどちらでも可能です。あなたは、コンテナディレクトリにおいてまたはファイルシステムの他の部分においてファイルを捜し出すために、バンドルオブジェクトを使いません。
The general pattern for using a bundle object is as follows: バンドルオブジェクトの使用の一般的なパターンは、以下の通りです:
Create a bundle object for the intended bundle directory. 意図するバンドルディレクトリのためにバンドルオブジェクトを作成する。
Use the methods of the bundle object to locate or load the needed resource. バンドルオブジェクトのメソッドを使用して、必要なリソースを発見したりロードする。
Use other system APIs to interact with the resource. 他のシステムのAPIを使ってリソースと相互作用する。
Some types of frequently used resources can be located and opened without a bundle. For example, when loading images, you store images in asset catalogs and load them using the init(named:)
methods of UIImage
or NSImage
. Similarly, for string resources, you use NSLocalized
to load individual strings instead of loading the entire .strings
file yourself.
いくつかの型のよく使われるリソースは、バンドルなしで発見され開かれることが可能です。例えば、画像をロードする場合、あなたは画像をアセットカタログの中に格納して、それらをUIImage
またはNSImage
のinit(named:)
メソッドを使ってロードします。同様に、文字列リソースに対して、あなたはNSLocalized
を使って個々の文字列をロードします、あなた自身で.strings
ファイル全体をロードする代わりに。
Note 注意
Unlike some other Foundation classes with corresponding Core Foundation names (such as NSString
and CFString
), Bundle
objects cannot be cast to CFBundle
references. If you need functionality provided by CFBundle
, you can still create a CFBundle
and use the CFBundle API. See Toll-Free Bridging for more information.
Core Foundation名に対応するいくつかの他のFoundationクラス(例えばNSString
とCFString
)とは違い、Bundle
オブジェクトはCFBundle
参照にキャストできません。あなたがCFBundle
によって提供される機能を必要とするならば、あなたは依然としてCFBundle
を作成してCFBundle APIを使うことができます。Toll-Free Bridgingをさらなる情報として見てください。
Before you can locate a resource, you must first specify which bundle contains it. The Bundle
class has many constructors, but the one you use most often is main
. The main bundle represents the bundle directory that contains the currently executing code. So for an app, the main bundle object gives you access to the resources that shipped with your app.
あなたがあるリソースを捜し出す前に、あなたは最初にそれを含んでいるバンドルを指定しなければなりません。Bundle
クラスは多くのコンストラクタを持ちます、しかしあなたが最もよく使うものはmain
です。メインバンドルは、現在実行しているコードを含むバンドルディレクトリを表します。なのであるアプリに対して、メインバンドルオブジェクトは、あなたにあなたのアプリに積み込まれるリソースへのアクセスを与えます。
If your app interacts directly with plug-ins, frameworks, or other bundled content, you can use other methods of this class to create appropriate bundle objects. You can always create bundle objects from a known URL or path, but other methods make it easier to access bundles your app is already using. For example, if you link to a framework, you can use the init(for:)
method to locate the framework bundle based on a class defined in that framework.
あなたのアプリがプラグイン、フレームワーク、または他のバンドルされる内容と直接に相互作用するならば、あなたはこのクラスの他のメソッドを使って適切なバンドルオブジェクトを作成できます。あなたは常にバンドルオブジェクトを既知のURLやパスから作成できます、しかし他のメソッドはあなたのアプリがもう既に使っているバンドルへのアクセスをより簡単にします。例えば、あなたがあるフレームワークにリンクするならば、あなたはinit(for:)
メソッドを使って、そのフレームワークの中で定義されるあるクラスに基づいてそのフレームワークバンドルを捜し出します。
You use Bundle
objects to obtain the location of specific resources inside the bundle. When looking for resources, you provide the name of the resource and its type at a minimum. For resources in a specific subdirectory, you can also specify that directory. After locating the resource, the bundle routines return a path string or URL that you can use to open the file.
あなたは、Bundle
オブジェクトを使ってバンドル内部の特定のリソースの位置を取得します。リソースを見つける時、あなたは最低限リソースの名前とそれの型を提供します。特定の下位ディレクトリの中のリソースに対して、あなたはまたそのディレクトリも指定できます。リソースを捜し出した後、バンドルルーチンは、あなたがそのファイルを開くのに使うことができるパス文字列またはURLを返します。
Bundle objects follow a specific search pattern when looking for resources on disk. Global resources—that is, resources not in a language-specific .lproj
directory—are returned first, followed by region- and language-specific resources. This search pattern means that the bundle looks for resources in the following order:
バンドルオブジェクトは、ディスク上でリソースを見つける時に特定のサーチパターンに従います。グローバルリソース — すなわち、ある言語特有の.lproj
ディレクトリの中にないリソース — は、最初に返されます、その後に地域そして言語特有のリソースが続きます。このサーチパターンは、次の順序でバンドルがリソースを捜すことを意味します:
Global (nonlocalized) resources グローバル(ローカライズされない)リソース
Region-specific localized resources (based on the user’s region preferences) 地域特定のローカライズされたリソース(ユーザの地域環境設定に基づいて)
Language-specific localized resources (based on the user’s language preferences) 言語特有のローカライズされたリソース(ユーザの地域環境設定に基づいて)
Development language resources (as specified by the CFBundleDevelopmentRegion key in the bundle’s Info.plist file) 開発言語リソース(バンドルの持つInfo.plistファイルの中のCFBundleDevelopmentRegionキーによって指定される通りに)
Because global resources take precedence over language-specific resources, you should never include both a global and localized version of a given resource in your app. When a global version of a resource exists, language-specific versions are never returned. The reason for this precedence is performance. If localized resources were searched first, the bundle object might waste time searching for a nonexistent localized resource before returning the global resource. グローバルリソースは言語特有のリソースを越える優先順をとることから、あなたは与えられたリソースのグローバルおよびローカライズ版の両方とも、あなたのアプリに決して含むべきではありません。あるリソースのグローバル版が存在する場合、言語特有版は、決して返されません。この優先順のわけは、性能です。ローカライズされたリソースが最初に検索されたならば、バンドルオブジェクトは、グローバルリソースを返す前に、存在しないローカライズリソースを検索する時間を浪費するかもしれません。
Important 重要
Bundle objects always consider case when searching for resource files, even on file systems that support case-insensitive filenames. Always make sure that you specify filenames with case sensitivity in mind. バンドルオブジェクトは、リソースファイルを検索する時に常に大文字小文字等(ケース)を考慮します、ファイルシステムが大文字小文字等非考慮のファイル名をサポートするとしてもです。常にあなたが大文字小文字等考慮してファイル名を指定することを心に留めておいてください。
When locating resource files, the bundle object automatically considers many standard filename modifiers when determining which file to return. Resources may be tagged for a specific device (~iphone
, ~ipad
) or for a specific screen resolution (@2x
, @3x
). Do not include these modifiers when specifying the name of the resource you want. The bundle object selects the file that is most appropriate for the underlying device. For more information, see App Icons on iPhone, iPad and Apple Watch.
リソースファイルを捜し出す場合、バンドルオブジェクトは、どのファイルを返すか判断する時に自動的に多くの標準ファイル名修飾子を考慮します。リソースは、特定のデバイスに対して(~iphone
、~ipad
)または特定の画面解像度に対して(@2x
、@3x
)タグをつけられるかもしれません。あなたの望むリソースの名前を指定する場合これらの修飾子を含まないでください。バンドルオブジェクトは、根底にあるデバイスに最も適切なファイルを選択します。さらなる情報として、App Icons on iPhone, iPad and Apple Watchを見てください。
Bundle structures vary depending on the target platform and the type of bundle you are building. The Bundle
class hides this underlying structure in most (but not all) cases. Many of the methods you use to load resources from a bundle automatically locate the appropriate starting directory and look for resources in known places. You can also use the methods and properties of this class to get the location of known bundle directories and to retrieve resources specifically from those directories.
バンドル構造は、あなたがビルドしている対象のプラットホームそしてバンドルの型次第でいろいろです。Bundle
クラスは、たいていの場合(しかし全てではない)この基底構造を隠します。あなたがリソースをバンドルからロードするのに使うメソッドの多くは、自動的に適切な開始ディレクトリを突き止めて、いくつかの既知の場所でリソースを探します。あなたはまた、このクラスのメソッドとプロパティを使って、既知のバンドルディレクトリの位置を取得して、リソースを取ってくることがそれらのディレクトリからに限定して可能です。
For information about the bundle structure of iOS and macOS apps, see Bundle Programming Guide. For information about the structure of framework bundles, see Framework Programming Guide. For information about the structure of macOS plug-ins, see Code Loading Programming Topics. iOSとmacOSアプリのバンドル構造についての情報として、Bundle Programming Guideを見てください。フレームワークバンドル構造についての情報として、Framework Programming Guideを見てください。macOSプラグインの構造についての情報として、Code Loading Programming Topicsを見てください。
class var main: Bundle
class var allFrameworks : [Bundle]
class var allBundles : [Bundle]
init(for: AnyClass)
NSBundle
object with which the specified class is associated.
指定されたクラスがそれと関連付けられる、NSBundle
オブジェクトを返します。
init?(identifier: String)
NSBundle
instance that has the specified bundle identifier.
指定されたバンドル識別子を持つ、NSBundle
インスタンスを返します。
init?(url: URL)
NSBundle
object initialized to correspond to the specified file URL.
指定されたファイルURLと関連付けられるよう初期化される、NSBundle
オブジェクトを返します。
init?(path: String)
NSBundle
object initialized to correspond to the specified directory.
指定されたディレクトリと関連付けられるよう初期化される、NSBundle
オブジェクトを返します。
func loadNibNamed (String, owner: Any?, options: [UINib.OptionsKey : Any]?) -> [Any]?
func loadNibNamed (NSNib.Name, owner: Any?, topLevelObjects : AutoreleasingUnsafeMutablePointer<NSArray?>?) -> Bool
func url(forResource : String?, withExtension : String?, subdirectory: String?) -> URL?
func url(forResource : String?, withExtension : String?) -> URL?
func urls(forResourcesWithExtension : String?, subdirectory: String?) -> [URL]?
func url(forResource : String?, withExtension : String?, subdirectory: String?, localization: String?) -> URL?
func urls(forResourcesWithExtension : String?, subdirectory: String?, localization: String?) -> [URL]?
class func url(forResource : String?, withExtension : String?, subdirectory: String?, in: URL) -> URL?
class func urls(forResourcesWithExtension : String?, subdirectory: String?, in: URL) -> [URL]?
func path(forResource : String?, ofType : String?) -> String?
func path(forResource : String?, ofType : String?, inDirectory : String?) -> String?
func path(forResource : String?, ofType : String?, inDirectory : String?, forLocalization : String?) -> String?
func paths(forResourcesOfType : String?, inDirectory : String?) -> [String]
func paths(forResourcesOfType : String?, inDirectory : String?, forLocalization : 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?
func pathForImageResource (NSImage.Name) -> String?
func image(forResource : NSImage.Name) -> NSImage?
NSImage
instance associated with the specified name, which can be backed by multiple files representing different resolution versions of the image.
指定された名前と関連付けられるNSImage
インスタンスを返します、それはその画像の異なる解像度バージョンを表している複数のファイルによって裏で支えられることができます。
func path(forSoundResource : NSSound.Name) -> String?
func localizedString (forKey : String, value: String?, table: String?) -> String
func contextHelp (forKey : NSHelpManager.ContextHelpKey) -> NSAttributedString?
var resourceURL : URL?
var executableURL : URL?
var privateFrameworksURL : URL?
var sharedFrameworksURL : URL?
var builtInPlugInsURL : URL?
func url(forAuxiliaryExecutable : String) -> URL?
var sharedSupportURL : URL?
var appStoreReceiptURL : URL?
var resourcePath : String?
var executablePath : String?
var privateFrameworksPath : String?
var sharedFrameworksPath : String?
var builtInPlugInsPath : String?
func path(forAuxiliaryExecutable : String) -> String?
var sharedSupportPath : String?
var bundleURL : URL
var bundlePath : String
var bundleIdentifier : String?
var infoDictionary : [String : Any]?
Info.plist
file, that contains information about the receiver.
ある辞書、バンドルのもつInfo.plist
ファイルから組み立てられます、それはレシーバについての情報を含みます。
func object(forInfoDictionaryKey : String) -> Any?
var localizations: [String]
var preferredLocalizations : [String]
var developmentLocalization : String?
var localizedInfoDictionary : [String : Any]?
class func preferredLocalizations (from: [String]) -> [String]
class func preferredLocalizations (from: [String], forPreferences : [String]?) -> [String]
func setPreservationPriority (Double, forTags : Set<String>)
func preservationPriority (forTag : String) -> Double
func classNamed (String) -> AnyClass?
Class
object for the specified name.
指定された名前に対するClass
オブジェクトを返します。
var principalClass : AnyClass?
class let didLoadNotification : NSNotification.Name
let NSLoadedClasses : String
userInfo
dictionary of a didLoadNotification
notification that corresponds to an array of names of each class that was loaded.
ロードされたクラスそれぞれの名前の配列に対応する、あるdidLoadNotification
通知のuserInfo
辞書に対するキーとして使われるある定数。
var executableArchitectures : [NSNumber]?
func preflight()
func load() -> Bool
func loadAndReturnError ()
func unload() -> Bool
var isLoaded : Bool
var NSExecutableErrorMinimum : Int
var NSExecutableNotLoadableError : Int
var NSExecutableArchitectureMismatchError : Int
var NSExecutableRuntimeMismatchError : Int
var NSExecutableLoadError : Int
var NSExecutableLinkError : Int
var NSExecutableErrorMaximum : Int