2015-01-11 3 views
0

저는 iOS 앱의 설정 묶음을 작업 중이며 단위를 설정하기 위해 몇 가지 토글 스위치를 추가했습니다. 어떤 이유로 인해 출시시 기본값을 등록하는 방식이 작동하지 않습니다. 내 AppDelegate에의 didFinishLaunching 방법에서 내가 추가 한 :난이도 iOS 앱을위한 기본값 등록

let defaultDict = ["altitudeMeters" : 3.28084] 

NSUserDefaults.standardUserDefaults().registerDefaults(defaultDict) 

NSUserDefaults.standardUserDefaults().synchronize() 

내가 응용 프로그램을 실행하고 '0.0'이 반환 ID 'altitudeMeters'와 토글 스위치의 값을 가져 오기합니다. 스위치의 위치를 ​​변경하면 내 설정 번들에 입력 된 값이 반환됩니다. 이 스위치의 기본값을 등록하는 동안 무언가가 누락 되었습니까? 다음과 같이

스위치는 설정 :

enter image description here

내가 사용하여 값에 액세스를 시도되었습니다 원래 게시 된 코드를 사용하여, 다른 곳에서 기본값을 설정 한 후

let altitudeFactor = NSUserDefaults.standardUserDefaults().doubleForKey("altitudeMeters") 

일찍이. 당신은 다음과 같이 그것을 할 필요가있을 것이다, 그래서? :

답변

0

당신이로 저장하여 사전을 저장할 때 [AnyObject NSObject의가] :

는 [ "altitudeMeters": 3.28084] myDefaultDict =하자

func saveMyDictionary(){ 
    NSUserDefaults.standardUserDefaults().setObject(myDefaultDict, forKey: "myDefaultDict") 
} 
func loadAltitude() -> Double? { 
    if let loadedDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey("myDefaultDict") { 
     if let altitudeStored = loadedDictionary["altitudeMeters"] as? Double { 
      return altitudeStored 
     } 
    } 
    return nil 
} 

saveMyDictionary() 

let altitudeFactor = loadAltitude() // it will return an optional 

println(altitudeFactor!) // you can force unwrap it if you are sure it wont be nil 

// otherwise you can you if let 
if let altitudeFactor = altitudeFactor { 
    println(altitudeFactor) // inside the brackets it is not an optional 
} 
당신이/제거 그 값을 다시 설정해야하는 경우

는 :

NSUserDefaults.standardUserDefaults().removeObjectForKey("myDefaultDict") 

당신은 두 번 대신이 같은 사전의로도 저장할 수 있습니다 :

+0

6,난 당신이 제안하지만 altitudeFactor = NSUserDefaults.standardUserDefaults()하자'사용하여 해당 설정 값을 호출하는 경우, 응용 프로그램을 실행. doubleForKey ("altitudeMeters")를 한 후'난 아직도'0.0' – user3185748

+0

을받을 것을 추가하려고 당신이해야 할 일을하지 않았습니다 –

+0

내가 이해하는 방식으로, 당신이 제공 한 코드는 여전히 기본값을 초기화하는 AppDelegate를위한 코드입니다. 그렇다면이 방법을 설정 한 후 내보기 컨트롤러에서 내 스위치의 값에 어떻게 액세스합니까? – user3185748