【问题标题】:Enumerate UISupportedExternalAccessoryProtocols at runtime在运行时枚举 UISupportedExternalAccessoryProtocols
【发布时间】:2016-04-26 20:58:15
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: ios xamarin xamarin.ios info.plist property-list


    【解决方案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 ());
            }
    

    【讨论】:

      【解决方案2】:

      你可以使用

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-05
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多