我需要做這個替換,但我不知道如何開始
“使用 plist 值替換默認的 AssessmentConfiguration 初始化”
我需要使用 propertyList(from:options:format:),但我不明白該怎么做。
var configuration: AssessmentConfiguration = AssessmentConfiguration(
outputFile: URL(fileURLWithPath: "/tmp/test_assessment_output.txt"),
errorFile: URL(fileURLWithPath: "/tmp/test_assessment_error.txt"),
runConfiguration: AssessmentConfiguration.RunConfiguration(runInterval: 30, iterations: 3)
)
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>OutputFile</key>
<string>/tmp/test_assessment_output.txt</string>
<key>ErrorFile</key>
<string>/tmp/test_assessment_error.txt</string>
<key>RunConfiguration</key>
<dict>
<key>RunInterval</key>
<integer>30</integer>
<key>Iterations</key>
<string>3</string>
</dict>
</dict>
</plist>
之后,我需要解碼 .plist 檔案并使用它的值來初始化 AssessmentConfiguration 物件
uj5u.com熱心網友回復:
您可以從 info 字典中獲取您的值,Bundle.main.infoDictionary并使用 info plist 中的值呼叫該方法。就像是:
var configuration: AssessmentConfiguration?
if let dictionary = Bundle.main.infoDictionary,
let outputFile = dictionary["OutputFile"] as? String,
let errorFile = dictionary["ErrorFile"] as? String,
let runConfiguration = dictionary["RunConfiguration"] as? [String Any],
let runInterval = runConfiguration["RunInterval"] as? Int,
let iterations = runConfiguration["Iterations"] as? String {
configuration = AssessmentConfiguration(
outputFile: URL(fileURLWithPath: outputFile),
errorFile: URL(fileURLWithPath: errorFile),
runConfiguration: AssessmentConfiguration.RunConfiguration(runInterval: runInterval, iterations: Int(iterations) ?? 0
)
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/421111.html
標籤:
上一篇:檢查變數的值是否存在于物件中
