大佬教程收集整理的这篇文章主要介绍了用Swift来获取项目中的.bundle资源文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,新建一个Bundle的扩展类:Bundle+XXX.swift
import UIKit
extension Bundle {
// 定义一个静态变量xxxBundle,用于获取项目本地的Bundle文件:XXX.bundle。
static var xxxBundle: Bundle{
return Bundle.init(path:Bundle.init(for: xxxComponent.self).path(forresource: "XXX",ofType: "bundle")!)!
}
// 定义一个静态变量arrowImage,用于获取图片文件:“arrow.png”。
static var arrowImage: UIImage{
return (UIImage.init(contentsOfFile: self.xxxBundle.path(forresource: "arrow@2x",ofType: "png")!)?.withRenderingMode(UIImageRenderingMode.alwaystemplatE))!
}
// 类方法
class func localizedString(forKey key: String) -> String {
return self.localizedString(forKey: key,value: nil)
}
// 参数value为可选值,可以传值为nil。
class func localizedString(forKey key: String,value: String?) -> String {
var language = Locale.preferredLanguages.first!
// (iOS获取的语言字符串比较不稳定)目前框架只处理en、zh-Hans、zh-Hant三种情况,其他按照系统默认处理
if language.hasPrefix("en") {
language = "en"
} else if language.hasPrefix("zh") {
language = "zh-Hans"
} else {
language = "en"
}
let bundle = Bundle.init(path: self.xxxBundle.path(forresource: language,ofType: "lproj")!)
let v = bundle?.localizedString(forKey: key,value: value,table: nil)
return Bundle.@H_120_21@main.localizedString(forKey: key,value: v,table: nil)
}
}
以上是大佬教程为你收集整理的用Swift来获取项目中的.bundle资源文件全部内容,希望文章能够帮你解决用Swift来获取项目中的.bundle资源文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。