2009-09-15 12 views

Répondre

6

Vous ne pouvez pas modifier le contenu de votre ensemble en cours d'exécution, vous n'avez pas accès en écriture à ce répertoire. Je ne suis pas sûr qu'il existe un moyen de faire exactement ce que vous voulez.

3

Je sais que vous pouvez obtenir votre info.plist comme NSDictionary via NSBundle ce qui suit:

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary]; 

à partir de là que vous pouvez faire un mutableCopy du NSDictionary et définir les valeurs qui y sont. Lorsque vous effectuez des requêtes sur les clés, vous devez vous assurer de demander le NSDictionary et non votre fichier info.plist, mais il ne devrait pas être difficile d'encapsuler tout cela dans une classe qui gère les deux problèmes pour vous. En ce qui concerne la modification directe du fichier info.plist de votre application, des problèmes peuvent survenir (par exemple, si vous modifiez le fichier, la signature du code échouera et votre application sera considérée comme corrompue), mais je n'en suis pas certain.

+0

La clé 'UIRequiresPersistentWiFi' semble s'accrocher à un plus grand code' UIApplication' Je ne sais pas ou ne sais pas comment accéder, qui présente une boîte de dialogue WiFi lorsqu'une connexion réseau est nécessaire. Par conséquent, faire une copie des préférences de bundle peut ne pas aller loin dans ce cas particulier, bien que cela puisse être applicable pour d'autres clés, si leur comportement peut être outrepassé. –

+0

Vous ne serez pas en mesure de changer votre info.plist ou l'un des fichiers de votre mainbundle. – mahboudz

0

Vous ne pouvez pas modifier le fichier Info.plist. Il ne semble pas y avoir une façon sanctionnée par Apple de faire ce que vous recherchez.

0

Je ne pense pas que cela fonctionnera. [NSBundle mainBundle] a un pointeur vers un infoDictionary spécifique. Même si vous prenez une copie mutable, NSBundle ne sait rien de notre nouveau projet. Quelqu'un a-t-il déjà essayé?

0

Info.plist n'est rien d'autre qu'un dictionnaire. Par conséquent, il peut être modifié.