2016-04-06 9 views
0

so wie der Titel sagt. Ist das möglich? her mein Code:Speichern eines Array von Schaltflächen zu NSUserDefaults swift

wenn die Ansicht zu verlassen ...

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    defaults.setObject(buttonArray, forKey: "buttonArray") 
    defaults.synchronize() 
} 

bei der Eingabe ...

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce") { 
     print("View already launched") 

     let savedArray = defaults.arrayForKey("buttonArray") 
     buttonArray = savedArray as! [UIButton] 
    } else { 
     print("View launched first time")   
     buttonArray = (button1, button2, button3, button4) 
    } 

    //rest of code where button array gets changed 
} 

im Fehler immer SIGNAL SIGABRT wenn prepareForSegue

+0

Matt, das scheint eine ziemlich leicht offensichtliche Frage zu sein. Hast du es versucht? Hat es funktioniert, hast du eine Fehlermeldung erhalten? – user3069232

Antwort

0

genannt wird, kann man nicht TU das. Benutzervorgaben ist eine Eigenschaft Liste und Sie können nur speichern die folgenden Typen drin (Arrays und Wörterbücher können nur solche Typen enthalten):

– NSArray 
– NSData 
– NSDictionary 
– NSNumber 
– NSString` 

Sie in der Kodierung der Tasten in NSData aussehen könnte, aber es ist schlechtes Design meiner Meinung nach. Der Benutzerstandard sollte für Benutzereinstellungen verwendet werden, die nach dem Neustart der App erhalten bleiben sollen. Welche Informationen benötigen Sie genau, um diese Schaltflächen neu zu erstellen? Muss es funktionieren, nachdem die App beendet wurde oder nur wenn Sie diesen Bildschirm erneut aufrufen?

+0

Hallo danke für die Antwort, es muss sowohl beim Wechsel zwischen den Bildschirmen arbeiten und wenn die App getötet wird/tritt Hintergrund usw. –

+0

Aber müssen Sie buchstäblich Tasten speichern? Warum nicht Informationen darüber, wie sie neu erstellt werden. – FruitAddict

+0

wäre es möglich, jede Taste neu zu erstellen, obwohl jede ein bestimmtes Bild und ein bestimmtes Ziel hat? Ich versuchte es mit Leo Dabus, aber die Knöpfe reagierten nicht auf die Ziele, die ich ihnen stellte. Auch ich erklärte die Tasten außerhalb der ViewDidLoad könnte dies ein Problem sein? –