2017-02-24 1 views
0

J'ai plusieurs textes de ligne et je les enregistre UserDefaults. Quand je veux obtenir le texte retournent parfois zéro. Mais il y a un texte dedans. Comment puis-je faire que le néant ne revienne pas?swift UserDefaults retourner nil comme NSMutableArray

var savedReports: NSMutableArray = NSMutableArray() 

    if let sR = defaults.object(forKey: "savedReports") as? NSMutableArray { 
     savedReports = sR.mutableCopy() as! NSMutableArray 
    } 

Répondre

1

L'API UserDefaults renvoie toujours des tableaux immuables. Vous voulez:

var savedReports: NSMutableArray = NSMutableArray() 

if let sR = defaults.object(forKey: "savedReports") as? NSArray { 
    savedReports = sR.mutableCopy() 
} 
+0

Pourquoi ne pas utiliser les types Swift plutôt que les types Foundation? – JAL

+0

@LeoDabus euh, désolé, ne l'ai pas remarqué. Ensuite, juste une triste utilisation de Foundation au lieu de Swift –

+1

@ Xcoder123 La version Swift est indépendante de l'utilisation de types Swift vs Fondation. Je ne vois pas comment cela est pertinent. – JAL