struct Config {
// option 1
static var apiRootURL: String {
guard let value = (Bundle.main.object(forInfoDictionaryKey: "BASE_URL") as? String), !value.isEmpty else {
fatalError("Base URL not found in PLIST")
}
return value
}
// option 2
static var databaseName: String {
guard let value = (Bundle.main.infoDictionary?["DB_NAME"] as? String), !value.isEmpty else {
fatalError("DB NAME not found in PLIST")
}
return value
}
}
6条答案
按热度按时间5ktev3wc1#
下面是一个代码示例:
2jcobegt2#
x一个一个一个一个x一个一个二个x
7y4bm7vi3#
也可以使用以下命令
bgtovc5b4#
从plist获取是非常简单的。
如果你想在plist中添加一些东西,也许你可以在这里找到答案:如何在plist中写入数据?
但是如果你只想在你的应用程序中保存一些消息,NSUserDefaults是更好的方法。
mm5n2pyu5#
你不能这样做。任何捆绑包无论是iOS还是Mac OS都是只读的,你只能读取它,你不能创建文件,写入或对捆绑包中的文件执行任何操作。这是苹果安全功能的一部分。你可以使用NSDocumentsDirectory写入和读取你的应用程序所需的内容
9wbgstp76#
斯威夫特
我知道这个问题是12年前问的,但这是第一个通过谷歌提出的问题。所以为了保存大家的时间,下面是如何在swift中做到这一点:
请注意,这两个函数访问plist的方法略有不同,但实际上它们几乎是相同的。
理论上可能没有plist,因此infoDictionary是可选的,但在这种情况下,第一个方法也会返回一个意外的值,从而导致错误。
苹果指出的一个实际差异是:
参考
Bundle.main.object(forInfoDictionaryKey: "BASE_URL")
与其他访问方法相比,首选使用此方法,因为它在键的本地化值可用时返回该值。