2014-09-24 5 views
0

У меня проблема между приложением для контейнеров и добавочным приложением, используя NSUserDefaults. Работает отлично на тренажере, но не работает на устройствах (разбился). Я пишу быстро.NSUserDefaults, работающий на симуляторе, но не работающий на устройстве (получите нуль)!

В моем контейнере приложении

override func viewDidLoad() { 
    var defaults = NSUserDefaults(suiteName: "group.myapp") 
    defaults.setValue(label1.text, forKey: "Textview") 
    defaults .synchronize() 
    } 

в моем удлинительного приложении

override func viewDidLoad() { 
    var defaults = NSUserDefaults(suiteName: "group.myapp") 
    var string : String = defaults.valueForKey("Textview") as String //Crashed on device 
    label2.text = "\(string)" //get nil 
} 

Я получаю упавший после запуска на устройстве, но работает на тренажере, пожалуйста, помогите! Спасибо

+1

Вы сначала зарегистрировали свои дефолты через 'registerDefaults'? Таким образом вы определяете настройки по умолчанию, когда ранее не было сохранено значение. – zisoft

ответ

0

1> чистое ваш проект и после его запуска
2>

override func viewDidLoad() { 
    let defaults = NSUserDefaults(suiteName: "group.myapp") 
    defaults.setObject(label1.text,forKey: "GameData") 
    defaults.synchronize() 
} 

получать данные:

if let defaults = NSUserDefaults.standardUserDefaults() { 
     if let str : AnyObject = defaults.objectForKey("GameData") { 
      println(str) 
     } 
    } 

3>

var myValue:NSString = label1.text 
NSUserDefaults.standardUserDefaults().setObject(myValue, forKey:"Username") 
NSUserDefaults.standardUserDefaults().synchronize() 

получать данные:

var myOutput: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("Username") 
println(myOutput) 

Я думаю, что это поможет вам.

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