Enumerate UISupportedExternalAccessoryProtocols at runtime



我正在使用Xamarin.iOS包装一个Objective-C库,用于通过扩展坞连接器连接到iPod和iPhone的配件。我浪费了很多时间试图让配件在我的测试应用程序中工作,然后我发现我的测试应用程序中的 Info.plist 中的 UISupportedExternalAccessoryProtocols 下缺少值。

我想防止其他人在使用我的包装库时遇到同样的问题。由于这是一个库,我的项目中不能有 Info.plist,对吧?因此,我想枚举调用方对UISupportedExternalAccessoryProtocols的值,以便我可以向开发人员提供易于阅读的消息,说明他们缺少值。有没有办法在运行时执行此操作?

谢谢!

这些中的任何一个都可以访问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 ());
        }
您可以使用

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

从 Info.plist 读取值,并查看它是否包含所有必需的值。

最新更新