您的位置:首页 > 其它

NSBundle

2016-03-14 18:38 253 查看
Initializing an NSBundle

Getting an NSBundle

Getting a Bundled Class

Finding Resources

Getting the Bundle Directory

Getting Bundle Information

Managing Localized Resources

Loading a Bundle’s Code

Managing Localizations

Managing Preservation Priority for On Demand Resources

NSBundle主要用于快速访问APP中的资源文件,如xib、plist、image等。

1 Initializing an NSBundle

/// 根据路径生成NSBundle
public init?(path: String)

/// 根据路径生成NSBundle
@available(iOS 4.0, *)
public convenience init?(URL url: NSURL)


2 Getting an NSBundle

/// 获取主bundle,Info.plist
public class func mainBundle() -> NSBundle

/// 根据类AnyClass关联获取bundle
public /*not inherited*/ init(forClass aClass: AnyClass)

/// 根据标识符获取bundle
public /*not inherited*/ init?(identifier: String)

/// 获取所有NSBundle
public class func allBundles() -> [NSBundle]

/// 获取framework
public class func allFrameworks() -> [NSBundle]


3 Getting a Bundled Class

/// 根据class名生成class
public func classNamed(className: String) -> AnyClass?

/// 捆绑的主要类
public var principalClass: AnyClass? { get }


4 Finding Resources

/// 源path
@available(iOS 4.0, *)
@NSCopying public var resourceURL: NSURL? { get }
public var resourcePath: String? { get }
/// 关联的appStore路径
@available(iOS 7.0, *)
@NSCopying public var appStoreReceiptURL: NSURL? { get }

/// 获取某个包下面的文件路径
///
/// - parameter name : 文件名
/// - parameter ext : 扩展,如plist
/// - parameter subpath : 搜索的目录
///
/// - returns: NSURL/String
@available(iOS 4.0, *)
public func URLForResource(name: String?, withExtension ext: String?, subdirectory subpath: String?) -> NSURL?
@available(iOS 4.0, *)
public func URLForResource(name: String?, withExtension ext: String?) -> NSURL?
public func pathForResource(name: String?, ofType ext: String?) -> String?

/// 获取包路径下指定文件名、文件类型的文件
/// 获取文件路径
///
/// - parameter name : 文件名
/// - parameter ext : 文件后缀名
/// - parameter subpath : 搜索的path目录
/// - parameter bundleURL : 文件包路径
///
/// - returns: NSURL/String
@available(iOS 4.0, *)
public class func URLForResource(name: String?, withExtension ext: String?, subdirectory subpath: String?, inBundleWithURL bundleURL: NSURL) -> NSURL?
@available(iOS 4.0, *)
public class func URLsForResourcesWithExtension(ext: String?, subdirectory subpath: String?, inBundleWithURL bundleURL: NSURL) -> [NSURL]?
public class func pathForResource(name: String?, ofType ext: String?, inDirectory bundlePath: String) -> String?
public func pathForResource(name: String?, ofType ext: String?, inDirectory subpath: String?) -> String?
public class func pathsForResourcesOfType(ext: String?, inDirectory bundlePath: String) -> [String]

/// 获取文件路径
///
/// - parameter name : 文件名
/// - parameter ext : 文件后缀名
/// - parameter subpath : 搜索的path目录
/// - parameter localizationName : 本地化语言ID
///
/// - returns: NSURL/String
@available(iOS 4.0, *)
public func URLForResource(name: String?, withExtension ext: String?, subdirectory subpath: String?, localization localizationName: String?) -> NSURL?
public func pathForResource(name: String?, ofType ext: String?, inDirectory subpath: String?, forLocalization localizationName: String?) -> String?
@available(iOS 4.0, *)
public func URLsForResourcesWithExtension(ext: String?, subdirectory subpath: String?, localization localizationName: String?) -> [NSURL]?
public func pathsForResourcesOfType(ext: String?, inDirectory subpath: String?, forLocalization localizationName: String?) -> [String]
@available(iOS 4.0, *)
public func URLsForResourcesWithExtension(ext: String?, subdirectory subpath: String?) -> [NSURL]?
public func pathsForResourcesOfType(ext: String?, inDirectory subpath: String?) -> [String]


5 Getting the Bundle Directory

/// 包路径
public var bundlePath: String { get }
@available(iOS 4.0, *)
@NSCopying public var bundleURL: NSURL { get }


6 Getting Bundle Information

// 包标示符Bundle ID
public var bundleIdentifier: String? { get }
// 对应的字典
public var infoDictionary: [String : AnyObject]? { get }
// 从字典中取数据
public func objectForInfoDictionaryKey(key: String) -> AnyObject?

/// 插件文件的路径
@available(iOS 4.0, *)
@NSCopying public var builtInPlugInsURL: NSURL? { get }
public var builtInPlugInsPath: String? { get }

/// 可执行的文件路径
@available(iOS 4.0, *)
@NSCopying public var executableURL: NSURL? { get }
public var executablePath: String? { get }

/// 规定文件名的可执行文件路径
@available(iOS 4.0, *)
public func URLForAuxiliaryExecutable(executableName: String) -> NSURL?
public func pathForAuxiliaryExecutable(executableName: String) -> String?

/// 私有库地址
@available(iOS 4.0, *)
@NSCopying public var privateFrameworksURL: NSURL? { get }
public var privateFrameworksPath: String? { get }

/// 共享库地址
@available(iOS 4.0, *)
@NSCopying public var sharedFrameworksURL: NSURL? { get }
public var sharedFrameworksPath: String? { get }

/// 可共享的文件地址
@available(iOS 4.0, *)
@NSCopying public var sharedSupportURL: NSURL? { get }
public var sharedSupportPath: String? { get }


7 Managing Localized Resources

/// 返回本地化字符串对应的值
public func localizedStringForKey(key: String, value: String?, table tableName: String?) -> String


8 Loading a Bundle’s Code

/// 可执行的cpu架构
@available(iOS 2.0, *)
public var executableArchitectures: [NSNumber]? { get }
// 可执行代码能否加载成功
@available(iOS 2.0, *)
public func preflight() throws
// 动态加载可执行代码
public func load() -> Bool
// 加载过程中并返回错误
@available(iOS 2.0, *)
public func loadAndReturnError() throws
// 加载状态
public var loaded: Bool { get }
// 卸载可执行代码
public func unload() -> Bool


9 Managing Localizations

// 从一个或多个本地化id中获取当前支持的id
public class func preferredLocalizationsFromArray(localizationsArray: [String]) -> [String]
public class func preferredLocalizationsFromArray(localizationsArray: [String], forPreferences preferencesArray: [String]?) -> [String]
// 优选本地化
public var preferredLocalizations: [String] { get }
// 开发语言
public var developmentLocalization: String? { get }
// 本地化字典
public var localizedInfoDictionary: [String : AnyObject]? { get }
// 本地化支持的ID
public var localizations: [String] { get }


10 Managing Preservation Priority for On Demand Resources

/// 设置优先级
@available(iOS 9.0, *)
public func setPreservationPriority(priority: Double, forTags tags: Set<String>)
/// 获取优先级
@available(iOS 9.0, *)
public func preservationPriorityForTag(tag: String) -> Double


Appendix

Sample Code

Swift

Related Documentation

NSBundle Class Reference

Bundle Programming Guide

Resource Programming Guide

Revision History

时间描述
2016-03-14博文完成

Copyright

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974/Blog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: