Option 2 is pretty much what happens. In addition, the behavior of doCoolStuff might change in 11.0 versus 10.15; the system framework will pick between the two by checking which SDK you were linked against.
> On Jun 14, 2022, at 12:30, Aandi Inston via Cocoa-dev > <cocoa-dev@lists.apple.com> wrote: > > I'm trying to understand how Mac OS X actually implements the predefined > objects like NSApplication. Not in detail by function, but where the code > lives. This is by way of understanding what happens if the SDK version > doesn't match the system version. Let's suppose I would like to use an > imaginary method [NSApplication doCoolStuff] which was added in Mac OS > 10.15, but I'm linking with the 10.14 SDK. > > So, where does doCoolStuff actually exist? I can think of several > possibilities. > > 1. The code for NSApplication and its methods is linked entirely into my > application. This makes it self contained, though it might depend on system > calls and external services. So NSApplication exists inside my application, > and it runs the version written as part of the SDK I link with (10.14). > There is no way for me to call [NSApplication doCoolStuff] , because it > doesn't exist in the NSApplication I am using (10.14 runtime). > > 2. The code for NSApplication is dynamically linked from system-provided > shared code of some kind, using the same code regardless of the SDK version > used. The shared code may include some differences according to info it has > on the SDK used to build the current app. In this case perhaps I could call > [NSApplication doCoolStuff], though not by coding that; something involving > NSSelectorFromString. > > 3. The code for NSApplication is dynamically linked from system-provided > shared code of some kind, using code dependent on the SDK version used. The > methods provided will depend on the SDK version used. This would imply > that, like case 1, is no way for me to call [NSApplication doCoolStuff] , > because it doesn't exist in the NSApplication runtime I am using. > > 4. The code for NSApplication is a stub to some other kind of external > interface I never heard of... > > Thanks in advance! > _______________________________________________ > > 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/saagar%40saagarjha.com > > This email sent to saa...@saagarjha.com _______________________________________________ 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