Just thought I’d like to warn everyone about something:

In the past, the NSFoundationVersionNumber constants for the same major OS 
version always used to have the same integer component. For example, the 
constants for 10.8, 10.8.1, 10.8.2, 10.8.3, and 10.8.4 are 945.00, 945.00, 
945.11, 945.16, and 945.18 respectively. As a result, we’ve often been using 
floor(NSFoundationVersionNumber) to determine the major OS version being used 
for the purpose of branching on features that may not be available in older OS 
versions.

This seems to be no longer the case for Yosemite. The NSFoundationVersionNumber 
constants for Yosemite are:

10.10: 1151.16
10.10.1: 1151.16
10.10.2: 1152.14
10.10.3: 1153.20

The NSAppKitVersionNumber constants are doing the same thing:

10.10: 1343
10.10.2: 1344
10.10.3: 1347

What this means is that if you try to use an El Capitan-only feature and put it 
in a block that starts with a check on floor(NSFoundationVersionNumber) or 
floor(NSAppKitVersionNumber) to make sure it’s larger than the value for 
10.10.0, your code in that block will get called on all versions of 10.10.x 
greater than 10.10.1. Once Yosemite stops being updated, we can of course use 
the constant for the last version that’s released, but since we still can’t say 
with 100% certainty that there won’t be a 10.10.5, we can’t really rely on this.

The upshot of this is that for checking if anything is later than Yosemite, 
it’s probably safer to use -[NSProcessInfo operatingSystemVersion] instead of 
NSFoundationVersionNumber.

Just thought I’d let everyone know.

Charles


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to