2015-06-18 2 views
0

Я пытаюсь в течение нескольких недель сохранять некоторые значения в одном контроллере представления, а затем обращаться к ним в другом, используя метод NSUserDefaults. Я использую этот код:Ошибка при использовании NSUserDefaults

(для сохранения):

let defaults = NSUserDefaults.standardUserDefaults() 
defaults.setObject("Coding Explorer", forKey: "userNameKey") 
  • последняя линия продуцирует "ожидаемое объявление" ошибка

(чтобы получить):

let defaults = NSUserDefaults.standardUserDefaults() 
if let name = defaults.stringForKey("userNameKey") 
{ 
    println(name) 
} 
  • Первый из этих линий дает «неправильный redeclarion из" значения по умолчанию»
  • второй линии производит«ожидается декларация»
  • третья линия производит«Последовательные declarions на линии должно быть отделено от a; " и «переменные используются в пределах своей первоначальной стоимости»

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

+0

Cmd + Shift + K для очистки, затем Cmd + Shift + B для восстановления. И если это не исправить, покажите нам гораздо больше контекста. – nhgrif

+0

используйте этот defaults.setString («Проводник кодирования», forKey: «userNameKey») вместо defaults.setObject («Проводник кодирования», forKey: «userNameKey») –

+0

Это странно, потому что на игровой площадке работает –

ответ

2

Вы можете попробовать использовать этот способ ..

, чтобы сохранить первую определить строку с именем, например, "Имя":

var firstName : String = "Im Swift" 

в viewDidLoad в первом ViewController:

if (NSUserDefaults.standardUserDefaults().stringForKey("firstName") == nil){ 
NSUserDefaults.standardUserDefaults().setObject(firstName, forKey: "firstName") 
} 

Для получения значения: в представленииDidLoad второго ViewController:

if (NSUserDefaults.standardUserDefaults().stringForKey("firstName") != nil){ 

var x = NSUserDefaults.standardUserDefaults().objectForKey("firstName") as! String 

    println("\(x)"); 
} 
Смежные вопросы