Nul*_*ion 0 xcode plist ios info-plist swift
在Project/SupportingFiles/en.lproj/InfoPlist.strings我有这个值:
NSUserTrackingUsageDescription = "虚拟";
它是一个本地化 InfoPlist.strings文件,可以是多种语言。在本例中,该文件夹en.lproj适用于英语。
例如,假设在编译之前我可以写入NSUserTrackingUsageDescription一个值,并且我需要确保它在运行时是否是“虚拟”。
NSUserTrackingUsageDescription是否可以在运行时使用Swift 检查 Swift 是否为“dummy”或另一个字符串?
我正在做一项研究,但找不到任何 Swift 代码来检查。
我尝试使用以下代码:
let string = Bundle.main.infoDictionary!["NSUserTrackingUsageDescription"] as! String
if (string == "dummy"){
logger.debug("NSUserTrackingUsageDescription is dummy")
}else{
logger.debug("NSUserTrackingUsageDescription is \(string)")
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为它输入了 else 并打印了以下内容:
LauncherViewController.requestAppTrackingTransparencyPermission():131
- NSUserTrackingUsageDescription 是虚拟的,替换为 InfoPlist.strings 的翻译
不知道为什么系统要, replaced with translation from InfoPlist.strings添加dummy。
最好的方法是使用:
guard let string = Bundle.main.object(forInfoDictionaryKey: "NSUserTrackingUsageDescription") as? String
else { fatalError("not found") }
Run Code Online (Sandbox Code Playgroud)
苹果文档中的注释:
使用此方法优于其他访问方法,因为它会在键可用时返回键的本地化值。
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |