2012-06-03 30 views
6

Nếu tôi muốn nhắm mục tiêu tất cả các phiên bản thiết bị iOS 4.3 hoặc mới hơn, tôi có thể sử dụng:Tôi làm cách nào để nhắm mục tiêu phiên bản Mac OS X cụ thể?

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_3 

Ngoài ra, nếu tôi muốn nhắm mục tiêu các thiết bị iOS nói chung, tôi có thể sử dụng:

#if TARGET_OS_IPHONE 

Is có cái gì đó tương tự cho Mac OS X?

Trả lời

3

NSAppKitVersionNumber là bạn của bạn trên OS X. Để nhắm mục tiêu, ví dụ: 10,5 trở lên, bạn có thể làm điều này:

#if NSAppKitVersionNumber >= NSAppKitVersionNumber10_5 

// ... 

#endif 

Edit: Chỉ cần thấy rằng cũng có __MAC_OS_X_VERSION_MAX_ALLOWED__MAC_OS_X_VERSION_MIN_REQUIRED trên OS X, mà có thể làm việc tốt hơn và đó có sẵn trong Availability.h mà không phụ thuộc Cocoa.

+1

Tốt và nếu tôi không sử dụng hệ điều hành Mac OS X (ví dụ: nếu tôi đang sử dụng iOS), thì 'NSAppKitVersionNumber' sẽ không được xác định, đúng không? Bằng cách này, tôi có thể nói với tôi trên Mac OS X nói chung, bằng cách kiểm tra nếu điều này được xác định? – rid

+0

@Radu Yup. 'NSAppKitVersionNumber' được định nghĩa chỉ trên OS X (hoặc tốt hơn nói nó được định nghĩa trong Cocoa. Nếu bạn không sử dụng Cocoa, bạn có thể trở lại' Gestalt' và liên kết yếu (hoạt động (afair!) Trên 10.6.8 trở lên) – JustSid

+0

@Radu Nhìn vào '/ usr/include/AvailabilityInternal.h', chúng bắt đầu bằng hai dấu gạch dưới Và có, các giá trị có thể tương tự với iOS:' __MAC_10_0', '__MAC_10_7' vv (xem trong'/usr/bao gồm/Availability.h' – JustSid

Các vấn đề liên quan