2011-01-06 80 views
6

我最近介绍了通过AirPrint进行打印,但不想放弃对4.2之前版本的支持(显然)。之前完成它,比如Game Center等。在这种情况下,我发现特别奇怪的是我必须弱化链接UIKit。印刷本身并没有包含在自己的框架中,使我更加细化。弱链接基础和UIKit?

这只是感觉不对,虽然它解决了我的问题,允许应用程序在所有版本上正常运行。

Apple's SDK Compatibility Guide他们的状态:

当使用一个框架,它是在你的部署目标 可用, 你应该要求框架(和 不弱链接的话)。

UIKit的可用,只是不类,如UIPrintInfoUIPrintInteractionController

我说得对不对,它似乎奇怪弱链接这样的核心框架?有没有更好的办法?

+0

你找到一个答案了吗?看起来,如果你尚未声明类的类型并首先进行测试,那么使用NS_CLASS_AVAILABLE就可以了。已经处理了这两个链接:http://goo.gl/6yH4U和http://goo.gl/FiOd9我还没有找到合适的解决方案。 – 2011-01-30 09:39:22

回答

2

有一个更好的方法。为了这个目的,iOS 4.2引入了NS_CLASS_AVAILABLE,但是在使用它的时候有一些限制。所有的细节都列出链接到下面的文件中:

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/cross_development/Using/using.html

+0

为了使这更具体:在运行时使用[UIPrintInfo类]进行测试,如果返回零,则表示您在较旧的系统上,并且应该跳过/禁用打印功能。 – 2011-01-07 14:36:01