6
如果我想4.3或更高版本定位到所有iOS設備的版本,我可以使用:如何定位特定的Mac OS X版本?
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_3
另外,如果我要針對一般的iOS設備,我可以使用:
#if TARGET_OS_IPHONE
是有什麼類似的Mac OS X?
如果我想4.3或更高版本定位到所有iOS設備的版本,我可以使用:如何定位特定的Mac OS X版本?
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_3
另外,如果我要針對一般的iOS設備,我可以使用:
#if TARGET_OS_IPHONE
是有什麼類似的Mac OS X?
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
這不是可可依賴可用。
不錯,如果我不在Mac OS X上(例如,如果我在iOS上),那麼'NSAppKitVersionNumber'將不會被定義,對嗎?這樣,我可以通過檢查這是否已定義,來告訴我一般在Mac OS X上? – rid
@Radu Yup。 'NSAppKitVersionNumber'只在OS X上定義(或者更好的說它是在Cocoa中定義的,如果你不使用Cocoa,你可以恢復到Gestalt和weak-linking(在10.6.8及更高版本上運行(afair!) ) – JustSid
@Radu看看'/ usr/include/AvailabilityInternal.h',它們以兩個下劃線開始,是的,可能的值與iOS類似:'__MAC_10_0','__MAC_10_7'等等(查看'/ usr /包括/ Availability.h' – JustSid