【问题标题】:How to use EventKit (Calendar) integration and still support iOS 3.x (MonoTouch)?如何使用 EventKit (Calendar) 集成并仍然支持 iOS 3.x (MonoTouch)?
【发布时间】:2010-11-12 19:55:38
【问题描述】:

我想使用 EventKit 将日历集成到我的 iPhone 和 iPad 应用程序中。但是,当我包含此代码(例如使用 MonoTouch.EventKit)时,应用程序将无法在我的 OS 3.x 设备(iPod touch 2G)上运行。

有没有办法在 MonoTouch 中构建一个应用程序,并且仍然将最低操作系统版本保持为 3.0,但同时支持 iOS 4 和 EventKit?如何在不中断对 3.0 设备支持的情况下为 iOS 4 设备添加 EventKit 功能?

谢谢

【问题讨论】:

    标签: compiler-construction ios xamarin.ios eventkit


    【解决方案1】:

    正如 bosmacs 所提到的,要做到这一点,您需要让 MonoTouch 知道您需要“弱”链接 EventKit 框架。弱绑定确保框架仅在第一次需要框架中的类时按需加载。

    为此,您应该采取以下步骤:

    • 打开您的项目选项并 导航到 iPhone Build 窗格。
    • 添加“-gcc_flags”-weak_framework
      iAd"' 到每个的额外参数 您希望弱链接的配置 开

    除此之外,您还需要保护您对这些类型的使用,以免它们在可能不存在的旧版本 iOS 上运行。有几种方法可以实现这一点,但其中之一是解析 UIDevice.CurrentDevice.SystemVersion。

    【讨论】:

      【解决方案2】:

      您应该能够弱链接 EventKit 框架,然后在运行时检查您需要的类是否存在。另见:EventKit in Universal app (OS3.2)iPhone checking for existence of AVCaptureSession ClassHow do you optionally use iPhone OS 3.0 features in a 2.0 compatible app?

      通过将项目设置中的部署目标设置为 3.0,但针对 4.x SDK 进行编译,弱链接方面应该为您处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多