2016-04-26 15 views
1

Ich verwende Xamarin.iOS, um eine Objective-C-Bibliothek für ein Zubehörteil zu verpacken, das über den Dock-Connector eine Verbindung zu iPods und iPhones herstellt. Ich habe viel Zeit damit verschwendet, das Accessoire in meiner Test-App zum Laufen zu bringen, bevor ich entdeckte, dass ich Werte unter UISupportedExternalAccessoryProtocols in Info.plist in meiner Test-App verpasste.Auflisten von UISupportedExternalAccessoryProtocols zur Laufzeit

Ich möchte verhindern, dass andere auf das gleiche Problem stoßen, wenn sie meine Wrapper-Bibliothek verwenden. Da es sich um eine Bibliothek handelt, kann ich in meinem Projekt keine Info.plist haben, richtig? Also möchte ich die Werte aufzählen, die der Aufrufer für UISupportedExternalAccessoryProtocols hat, damit ich den Entwicklern eine leicht zu lesende Nachricht geben kann, dass ihnen Werte fehlen. Gibt es eine Möglichkeit, dies zur Laufzeit zu tun?

Danke!

Antwort

1

Beides wird in der Info.plist den Zugriff auf Werte arbeiten:

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

Oder

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

dann die Werte erhalten wie folgt:

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

können Sie

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

, um den Wert von Info.plist und sehen Sie zu lesen, wenn es alle erforderlichen Werte enthält.