Avant d'utiliser initWithContentsOfURL pour télécharger un plist dans un NSDictionary, mais cela bloque l'interface utilisateur lorsqu'il est exécuté sur le même thread alors maintenant j'ai déplacé à NSURLConnection le problème est que je ne peux plus appeler une méthode init le NSDictionary avec NSMutableData. Quelle est la meilleure façon de prendre NSMutableData et de le placer dans un NSDictionary?NSDictionary De NSMutableData
Répondre
Qu'est-ce que vous avez besoin est NSPropertyListSerialization:
NSDictionary *myDict = [NSPropertyListSerialization propertyListFromData:myData mutabilityOption:NSPropertyListImmutable format:nil errorDescription:nil];
est l'option plus simple.
Sans savoir exactement ce que vous essayez de faire, je vais essayer de le faire; Même si ça ne marche pas, je suis sûr que vous pouvez l'adapter à vos besoins.
NSString *s = [[NSString alloc] initWithBytes:[mutableData bytes] length:[mutableData length] encoding:NSUTF8StringEncoding];
NSString *path = NSTemporaryDirectory();
path = [path stringByAppendingPathComponent:@"tmpfile.txt"];
if ([s writeToFile:path atomically:NO encoding:NSUTF8StringEncoding error:nil]) {
NSDictionary *d = [[NSDictionary alloc] initWithContentsOfFile:path];
}
En clair, créer une chaîne à partir des données, écrire que dans un fichier temporaire, puis chargez le fichier temporaire dans un objet NSDictionary
.
Ce code est loin d'être parfait (il faut des trucs comme la vérification d'erreur, etc.) mais il peut vous aider à démarrer. Mise en garde: J'ai écrit du logiciel Cocoa pendant plusieurs années, mais je n'ai jamais touché un iPhone, donc c'est une supposition.
Est-ce que votre NSDictionary a d'autres données que vous devez conserver? Dans la connexion: didReceiveResponse: méthode (délégué de NSUrlConnection), vous pouvez copier votre ancien NSDictionary dans un NSMutableDictionary et y insérer également les données de réponse d'URL. Puis convertissez NSMutableDictionary en un nouveau NSDictionary.
- 1. Ajout de NSInteger à NSMutableData
- 2. Comment fonctionne NSMutableData?
- 3. Comment convertir NSMutableData en NSString sur iPhone?
- 4. instanciation Custom Class de NSDictionary
- 5. problème valeur de retour NSDictionary
- 6. NSDictionary dans 1 NSMutableArray
- 7. NSDictionary Objective-C
- 8. Création d'un dictionnaire NSDictionary
- 9. NSDictionary WriteToFile échoue
- 10. Données NSDictionary non persistantes
- 11. Obtention du nombre d'octets d'une instance de NSMutableData
- 12. Parse Plist (NSString) dans NSDictionary
- 13. UITableView Looping Out Données de NSMutableArray/NSDictionary
- 14. Obtenir toutes les valeurs de NSDictionary (profondément)
- 15. Comment transformer un NSMutableData en une image dans une vue?
- 16. Utiliser la classe comme clé dans NSDictionary
- 17. Comment ajouter un CGImageRef à un NSDictionary?
- 18. Ajouter 2d int array à NSDictionary
- 19. Accélérer la création de NSDictionary à partir de XML?
- 20. Algorithme: Maintenir le nombre de paires clé/valeur dans NSDictionary
- 21. NSDictionary fuite sur iPhone et graphe de référence d'objet
- 22. Lecture des clés NSDictionary à partir des listes de propriétés
- 23. comment récupérer des valeurs de nsdictionary dans iphone?
- 24. Comment dois-je construire un NSDictionary avec plusieurs clés?
- 25. Utiliser valueForKeyPath sur NSDictionary si une clé commence le symbole @?
- 26. Optimisation d'un iPhone Pathfinding * - NSDictionary fera-t-il l'affaire?
- 27. Comment sélectionner une clé aléatoire dans un NSDictionary?
- 28. Comment convertir un dictionnaire NSDictionary en dict Python?
- 29. Les clés et les valeurs d'un NSDictionary sont-elles classées?
- 30. Comment faire pour définir correctement une valeur entière dans NSDictionary?