2016-03-29 3 views
2

Здравствуйте, я сохраняю значения, когда пользователь успешно авторизуется.NSUserDefault не сохраняет значение

case 200: 
      let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
         prefs.setObject(email, forKey: "EMAIL") 
         prefs.setObject(result["User"]!["profile_image"], forKey: "PROFILEIMAGE") 
         prefs.setObject(result["User"]!["first_name"], forKey: "FIRSTNAME") 
         prefs.setObject(result["User"]!["last_name"], forKey: "LASTNAME") 
         prefs.setObject(result["User"]!["Country"], forKey: "COUNTRY") 
         prefs.setObject(result["User"]!["user_id"], forKey: "USERID") 

         prefs.setObject(result["User"]!["session_token"], forKey: "SESSIONTOKEN") 
         prefs.setInteger(1, forKey: "ISLOGGEDIN") 

         prefs.synchronize() 


         dispatch_async(dispatch_get_main_queue(), {() -> Void in 
          let nav : SWRevealViewController = self.storyboard!.instantiateViewControllerWithIdentifier("swrevealviewcontroller") as! SWRevealViewController 
          self.navigationController?.presentViewController(nav, animated: true, completion: {() -> Void in 
          })        
         }) 


         break; 

Я получаю PROFILEIMAGE значение ноль, когда я пытаюсь получить значение, как этот

let userDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults() 
     print("userdefault is \(userDefaults.stringForKey("PROFILEIMAGE"))") 

Так Для того, чтобы проверить, все ключи и значения, сохраненные в телефоне, я сделал это

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation()) 

Я проверил консоль и не нашел COUNTRY и PROFILEIMAGE ключ и значения в консоли

Пожалуйста, помогите мне, что я делаю неправильно здесь

+0

в этом месте 'stringForKey' использовать' valueForKey' или 'ObjectForkey' и попытаться –

+0

Возможного дубликатом [NSUserDefaults ненадежного в прошивке 8] (HTTP: // StackOverflow. com/questions/25917106/nsuserdefaults-unriable-in-ios-8) – mbelsky

+0

@ Anbu.Karthik Не повезло :( – hellosheikh

ответ

0

Проверьте, не являются ли данные (строковое значение) ничто.

if let url: String = result["User"]!["profile_image"] { 
    let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
    prefs.setObject(result["User"]!["profile_image"], forKey: "PROFILEIMAGE") 
    prefs.synchronize() 
} 

И retrive:

let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
if let storedURL: String = prefs.objectForKey(PROFILEIMAGE) as? String{ 
// Do your stuff 

} 
+0

Вы отвечаете правильно, но если я могу быть педантичным, вам больше не нужно вызывать синхронизацию с iOS 8. – crashoverride777

Смежные вопросы