When a user buys we ask for a registration on first run. We like to get the OS name and version number from their system to include in out reg database.
I just want to be sure that using Gestalt will not break in the future or is there a better way than that below to get the OS version. - (void) getSystemVersionMajor:(unsigned *)major minor:(unsigned *)minor bugFix:(unsigned *)bugFix { OSErr err; SInt32 systemVersion, versionMajor, versionMinor, versionBugFix; if ((err = Gestalt(gestaltSystemVersion, &systemVersion)) != noErr) goto fail; if (systemVersion < 0x1040) { if (major) *major = ((systemVersion & 0xF000) >> 12) * 10 + ((systemVersion & 0x0F00) >> 8); if (minor) *minor = (systemVersion & 0x00F0) >> 4; if (bugFix) *bugFix = (systemVersion & 0x000F); } else { if ((err = Gestalt(gestaltSystemVersionMajor, &versionMajor)) != noErr) goto fail; if ((err = Gestalt(gestaltSystemVersionMinor, &versionMinor)) != noErr) goto fail; if ((err = Gestalt(gestaltSystemVersionBugFix, &versionBugFix)) != noErr) goto fail; if (major) *major = versionMajor; if (minor) *minor = versionMinor; if (bugFix) *bugFix = versionBugFix; } return; fail: NSLog(@"Unable to obtain system version: %ld", (long)err); if (major) *major = 10; if (minor) *minor = 0; if (bugFix) *bugFix = 0; } -koko On Sep 21, 2011, at 1:32 PM, Sean McBride wrote: > On Wed, 21 Sep 2011 13:26:32 -0600, koko said: > >> Is Gestalt(gestaltSystemVersion, &MacVersion) the wat toget OSX versions >> today and moving forward? > > No. Because it's BCD and breaks for values larger than 9. See Gestalt.h. > Instead, use: > > SInt32 major = 0; > (void)Gestalt (gestaltSystemVersionMajor, &major); > > SInt32 minor = 0; > (void)Gestalt (gestaltSystemVersionMinor, &minor); > > SInt32 fix = 0; > (void)Gestalt (gestaltSystemVersionBugFix, &fix); > > Cheers, > > -- > ____________________________________________________________ > Sean McBride, B. Eng s...@rogue-research.com > Rogue Research www.rogue-research.com > Mac Software Developer Montréal, Québec, Canada > > > _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com