我使用Xamarin.iOS为附件连接Objective-C库,该附件通过基座连接器连接到iPod和iPhone。在我的测试应用程序中发现我在Info.plist中的UISupportedExternalAccessoryProtocols下缺少值之前,我浪费了大量时间尝试让附件在我的测试应用程序中工作。
我想在使用我的包装库时阻止其他人遇到同样的问题。由于这是一个图书馆,我的项目中没有Info.plist,对吧?因此,我想枚举调用者对UISupportedExternalAccessoryProtocols的值,以便向开发人员提供一条易于阅读的消息,告知他们缺少值。有没有办法在运行时执行此操作?
谢谢!
答案 0 :(得分:1)
您可以使用
var values = NSBundle.MainBundle.ObjectForInfoDictionary("UISupportedExternalAccessoryProtocols");
从Info.plist中读取值,看它是否包含所有必需的值。
答案 1 :(得分: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 ());
}