2016-04-26 1 views
1

Я использую Xamarin.iOS для обертывания библиотеки Objective-C для аксессуара, который подключается к iPod и iPhone через разъем док-станции. Я потратил много времени, пытаясь заставить аксессуар работать в своем тестовом приложении, прежде чем обнаружил, что в моем тестовом приложении мне не хватает значений в UISupportedExternalAccessoryProtocols в Info.plist.Перечислить UISupportedExternalAccessoryProtocols во время выполнения

Я хочу, чтобы другие люди не столкнулись с той же проблемой, когда они используют мою библиотеку обертки. Поскольку это библиотека, у меня не может быть Info.plist в моем проекте, верно? Поэтому я хотел бы перечислить значения, которые имеет вызывающий абонент для UISupportedExternalAccessoryProtocols, поэтому я могу дать легко читаемым сообщениям разработчикам о том, что они пропускают значения. Есть ли способ сделать это во время выполнения?

Спасибо!

ответ

1

Любой из них будет работать доступа к значениям в Info.plist:

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

Или

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

затем получить значения следующим образом:

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

Вы можете использовать

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

прочитать значение из Info.plist и посмотреть, если он содержит все необходимые значения.