2010-11-01 5 views

Répondre

6

Utilisez +[NSDictionary dictionaryWithContentsOfURL:]. Il peut comprendre les plistes binaires.

Edit:

Comme Peter Hosey souligne, cela ne fonctionnera que si l'élément racine est un dictionnaire. Si l'élément racine est un tableau, vous pouvez utiliser +[NSArray arrayWithContentsOfURL:].

+0

Merci, je vais regarder dans tout de suite! –

+1

Cela ne fonctionnera que pour les fichiers plist dont l'élément racine est un dictionnaire. –

+0

Mon élément racine est un dictionnaire. –

0

Une solution beaucoup plus générale consiste à utiliser NSPropertyListSerialization, comme suggéré par Vladimir dans sa réponse qu'il a supprimé. Il sérialise à la fois (fait des données de plist d'un objet) et désérialise (recrée un arbre d'objet à partir des données de plist).

Il est toujours capable d'analyser toute plist valide, binaire ou autre, quel que soit le type de l'élément racine; Vous pouvez ensuite inspecter l'objet retourné pour vous assurer qu'il est du type attendu.

+0

WHats la différence entre votre solution et + [NSDictionary dictionaryWithContentsOfURL:] –

+0

Défenseur du code: Comme je l'ai mentionné dans mon commentaire sur la réponse de mipadi, 'dictionaryWithContentsOfURL:' ne retournera qu'un dictionnaire; passez-lui un fichier plist contenant un autre type d'objet à sa racine, et il renverra 'nil'. NSPropertyListSerialization renverra tout ce qui se trouve dans le fichier. Cela vous permet de prendre en charge différents types, tels qu'un dictionnaire unique ou un tableau de dictionnaires. –

Questions connexes