我一直没有使用这个值的错误。我理解这个错误经常弹出Swift 2.2,这是因为没有使用初始化的值。但是,我确实使用了这个值,并且这个错误在我使用的错误上弹出了3次,我不知道为什么我仍然会得到它。
以下是代码。 “难度”是编译器说不使用的变量,但正如您从我的代码中看到的那样,它实际上已被使用。有人知道为什么会这样吗?
class SettingsController: UIViewController {
// MARK: Properties
// Preferences for difficulty level of questions
let preferences = NSUserDefaults.standardUserDefaults()
let difficultyKey = "Difficulty"
let questionnumKey = "QuestionNum"
var difficulty: String = "EASY"
@IBOutlet weak var Easy: DLRadioButton!
@IBOutlet weak var Medium: DLRadioButton!
@IBOutlet weak var Hard: DLRadioButton!
override func viewDidLoad() {
super.viewDidLoad()
readUserDefaults()
setDifficulty()
}
func readUserDefaults(){
let difficulty = preferences.stringForKey(difficultyKey) // <--Error
}
func setDifficulty(){
if difficulty == "HARD"{
Hard.selected = true
}
else if difficulty == "MEDIUM"{
Medium.selected = true
}
else{
Easy.selected = true
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
答案 0 :(得分:0)
在readUserDefaults()
中,它应该是
difficulty = preferences.stringForKey(difficultyKey)
您需要删除let
:您之前已经创建了difficulty
变量。
您还需要使用??
,&#34; nil合并运算符&#34;:preferences.stringForKey(difficultyKey) ?? "EASY"
,例如,即使方法调用返回nil,也要给出一个值。
注:@ eric-d和@ leo-dabus的评论作出回答。