1

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

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

谢谢

4

2 回答 2

2

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

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

  • 打开你的 Project Options 并导航到 iPhone Build 面板。
  • 将'-gcc_flags "-weak_framework
    iAd"' 添加到您希望弱链接的每个配置的额外参数中

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

于 2010-11-12T21:07:10.217 回答
1

您应该能够弱链接 EventKit 框架,然后在运行时检查您需要的类是否存在。另请参阅:通用应用程序 (OS3.2) 中的 EventKit 、iPhone 检查是否存在 AVCaptureSession 类以及如何在兼容 2.0 的应用程序中选择使用 iPhone OS 3.0 功能?

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

于 2010-11-12T20:19:42.833 回答