【问题标题】:Swift: Placeholder for current configurationSwift:当前配置的占位符
【发布时间】:2016-06-24 16:45:57
【问题描述】:

我正在阅读 example,因为它有多个配置并在运行时使用此 Objective C 代码访问活动的配置:

  NSBundle *bundle = [NSBundle mainBundle];
  NSString *path = [bundle pathForResource:@"Configuration" ofType:@"plist"];
  NSDictionary *config = [NSDictionary dictionaryWithContentsOfFile:path];

获取活动配置值的@"Configuration" 的 Swift 等效项是什么?

这不起作用:

var myDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource(@"Configuration", ofType: "plist") {
    myDict = NSDictionary(contentsOfFile: path)
}

【问题讨论】:

  • 您不需要符号@,只需使用“配置”即可。此外,您需要确保在构建资源中添加了一个名为 Configuration.plist 的文件。
  • 在此示例中,配置是三种可能的字符串文字(调试、发布、临时)之一,其中一个根据您的方案/配置(我认为)处于活动状态。所以“配置”似乎不是要走的路。
  • 不,如果你仔细阅读原文,这三个文件都称为Configuration.plist。它们只是在不同的文件夹中,将根据 Xcode 配置 以及您选择的 scheme 动态添加到运行时。
  • 现在知道了,谢谢!完全误读了。我看到 @ 符号并认为它是不同的东西,但只是读到这是如何在 Objective C 中表示字符串 - stackoverflow.com/questions/4446308/…

标签: swift placeholder


【解决方案1】:

只需删除 @ 即可:

var myDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource("Configuration", ofType: "plist") {
    myDict = NSDictionary(contentsOfFile: path)
}

【讨论】:

  • 这会将“配置”视为文字值还是应动态确定的内容?应该是后者(见我对这个问题的评论)。
猜你喜欢
  • 2013-01-21
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
相关资源
最近更新 更多