2011-01-06 77 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