2012-06-03 34 views
6

如果我想4.3或更高版本定位到所有iOS設備的版本,我可以使用:如何定位特定的Mac OS X版本?

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_3 

另外,如果我要針對一般的iOS設備,我可以使用:

#if TARGET_OS_IPHONE 

是有什麼類似的Mac OS X?

回答

3

NSAppKitVersionNumber是你在OS X上的朋友。 10.5及以上,你可以這樣做:

#if NSAppKitVersionNumber >= NSAppKitVersionNumber10_5 

// ... 

#endif 

編輯:剛剛看到,也有__MAC_OS_X_VERSION_MAX_ALLOWED__MAC_OS_X_VERSION_MIN_REQUIRED在OS X上,這可能會更好地工作,哪些是在Availability.h這不是可可依賴可用。

+1

不錯,如果我不在Mac OS X上(例如,如果我在iOS上),那麼'NSAppKitVersionNumber'將不會被定義,對嗎?這樣,我可以通過檢查這是否已定義,來告訴我一般在Mac OS X上? – rid

+0

@Radu Yup。 'NSAppKitVersionNumber'只在OS X上定義(或者更好的說它是在Cocoa中定義的,如果你不使用Cocoa,你可以恢復到Gestalt和weak-linking(在10.6.8及更高版本上運行(afair!) ) – JustSid

+0

@Radu看看'/ usr/include/AvailabilityInternal.h',它們以兩個下劃線開始,是的,可能的值與iOS類似:'__MAC_10_0','__MAC_10_7'等等(查看'/ usr /包括/ Availability.h' – JustSid