2016-04-26 3 views
1

J'utilise Xamarin.iOS pour envelopper une bibliothèque Objective-C pour un accessoire qui se connecte aux iPods et aux iPhones via le connecteur Dock. J'ai perdu beaucoup de temps à essayer de faire fonctionner l'accessoire dans mon application de test avant de découvrir qu'il me manquait des valeurs sous UISupportedExternalAccessoryProtocols dans Info.plist dans mon application de test.Énumérer UISupportedExternalAccessoryProtocols à l'exécution

Je voudrais empêcher d'autres de rencontrer le même problème lorsqu'ils utilisent ma bibliothèque de wrapper. Puisqu'il s'agit d'une bibliothèque, je ne peux pas avoir un Info.plist dans mon projet, n'est-ce pas? Donc, je voudrais énumérer les valeurs que l'appelant a pour UISupportedExternalAccessoryProtocols afin que je puisse donner un message facile à lire aux développeurs qu'il leur manque des valeurs. Y a-t-il un moyen de le faire au moment de l'exécution?

Merci!

Répondre

1

Chacune de ces travaillera aux valeurs d'accès dans le Info.plist:

var protocolArray = (NSArray)NSBundle.MainBundle.InfoDictionary ["UISupportedExternalAccessoryProtocols"]; 

Ou

var protocolArray = (NSArray)NSBundle.MainBundle.ObjectForInfoDictionary ("UISupportedExternalAccessoryProtocols"); 

puis obtenir les valeurs comme ceci:

 for (nuint i = 0; i < protocolArray.Count; i++) { 
      Console.Write (protocolArray.GetItem<NSString> (i).ToString()); 
     } 
1

Vous pouvez utiliser

var values = NSBundle.MainBundle.ObjectForInfoDictionary("UISupportedExternalAccessoryProtocols"); 

pour lire la valeur de Info.plist et voir si elle contient toutes les valeurs requises.