在swift中,如果我有一个全局常量,比如让一个文件中的host = XXX,那么这个常量的改变将导致重新编译所有项目文件
答案 0 :(得分:0)
更正,更改该范围内的某些内容将导致重新编译。
就像你要更改特定类中的常量一样,该类将被重新编译。
如果您需要更改代码之外的值,例如host
那么使用包含一些属性的plist文件可能会更好。
示例:
settings.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>host</key>
<string>1.2.3.4</string>
</dict>
</plist>
example code to get value:
guard let settingsFileURL = NSBundle.mainBundle().URLForResource("settings", withExtension: "plst") else {
fatalError("unable to find plist file")
}
let settings = NSDictionary(contentsOfURL: settingsFileURL)
guard let host = settings?.valueForKey("host") as? String else {
fatalError("unable to get host value from plist file")
}
print("host = \(host)")