이 코드는 값 (점수)이 이전 값 (maxscore) 이상이면 데이터를 plist에 저장하려고 시도하지만 오류가 발견되었습니다.NSUserDefaults에서 값을 가져 오는 동안 오류가 발생했습니다.
func write() { var maxscore = NSUserDefaults.standardUserDefaults().objectForKey("chiave") as Int?
if let test = score { // ERROR
if maxscore < score {
maxscore = score
}
}
NSUserDefaults.standardUserDefaults().setObject(score, forKey: "chiave")
NSUserDefaults.standardUserDefaults().synchronize()
}
엑스 코드의 오류는
"bond value in a conditional binding must be optional type swift"
EDIT 새로운 문제입니다! 나는 게임이 끝날 때 plist를 쓰고 게임 시작시 plist를 읽고 labelScore에서 maxScore를 보여주고 싶습니다 ...하지만 새로운 오류가있어서 해결하려고 미쳤습니다!
func write() {
var maxScore = NSUserDefaults.standardUserDefaults().objectForKey("chiave") as Int?
if maxScore < score {
maxScore = score
}
NSUserDefaults.standardUserDefaults().setObject(maxScore, forKey: "chiave")
NSUserDefaults.standardUserDefaults().synchronize()
}
func read() {
var maxScore = NSUserDefaults.standardUserDefaults().objectForKey("chiave") as Int?
println(maxScore) // CONSOLE RETURN -> "Optional(0)"
labelScore.text = String(maxScore) // ERROR "Could not find an overload for init that accept the supplied argument
}
나는 이것이 투표가 왜 실패했는지 이해하지 못합니다. 정당한 질문입니다. – Oxcug
귀하의 질문에 plist 파일을 쓰는 것에 관해서 당신의 설명은 NSUserDefaults에 대해 언급하고 있습니다. – Mrunal
나는 정말로 이해하지 못한다. 나는 코딩에 익숙하다. 그리고 간단한 문자열을 저장하고 완벽하게 작동하는 샘플 프로젝트를 가지고있다. 그러나이 방법은 부울 정수를 수정하고 문자열은 내 프로젝트에서 작동하지 않는다 ... –