안녕하세요 일반 및 plist 배열을 읽고 하나의 값을 편집하고 다시 저장하려고합니다. 여러 가지 방법을 시도했지만 잘못하고있는 것을 정확히 파악하지 못했습니다.스위프트 편집 plist 배열
//These three lines are outside any function to make them global
var dict: NSDictionary!
var data: NSMutableDictionary!
var path: String!
let seconds = Float(mytime)
var HighScores = dict.valueForKey("TiltHighScores") as? NSArray
var myHighScores:NSArray = HighScores!
var fakeLevelHighScore = myHighScores[MyGame.level] as NSNumber
var LevelHighScore = fakeLevelHighScore.floatValue
println("\(LevelHighScore)")
println("\(seconds)")
myNewHighScore = myHighScores
if (seconds>=LevelHighScore){
println("its happening")
myNewHighScore[MyGame.level] = NSNumber(double: Double(seconds))
//error one on line above, error two on line below
data.setObject(myNewHighScores, forKey: "TiltHighScores")
data.writeToFile(path, atomically: true)
}
편집 :에 죄송 방법 막연한 질문은 여기에 있었다 좀 더 자세한 사항은 다음과 같습니다. plist에서 잘 읽었습니다. 따라서 plist를 읽는 것과 함께가는 길과 모든 것이 정확합니다. 배열을 편집하고 다시 저장하는 데 문제가 있습니다. 임을 편집하려고하는 배열을 TiltHighScores라고합니다. 이 변수를 HighScores 변수로 가져옵니다. 이것을 풀려면 myHighScores를 HighScores로 설정하십시오! 표. 나는 현재 수준의 최고 점수를 얻는 배열에서 가치를 끌어내는 동일한 과정을 수행한다. 이것은 모두 작동합니다. 여기에서 내가 문제를 받고있는 곳입니다. 나는 사용자 점수 (초)가 레벨의 최고 점수보다 큰지를 테스트하고보고 싶습니다. 새로운 최고 점수를 저장하고 싶습니다. 나는 배열 (myNewHighscores)을 생성하고 원래의 최고 스코어의 값으로 값을 채운 다음 한 값 (레벨 값)을 변경하고 다시 저장함으로써이 작업을 시도했다.
이제 if 문에서 두 가지 오류가 발생합니다. 이 표현 두 번째의 결과를 할당 할 수 없습니다 : 정확한 라인 첫 번째에 대한 주석 참조 해결되지 않은 식별자의 사용 'myNewHighScores'
내가 처음이 두 번째 원인을 확신합니다.
누구든지 내 논리를 고칠 수 있으면 매우 감사 할 것입니다. 이것이 내 목표를 달성하기위한 나쁜 방법 일 뿐인데 나는 새로운 방식으로 개방되어 있습니다.
감사합니다.
답장을 보내 주셔서 감사합니다. 나는 물건을 지우고 편집에서 내 코드를 더 읽기 쉽게 만들어 보았습니다. –