• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Creating the app menu from scratch
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Creating the app menu from scratch


  • Subject: Re: Creating the app menu from scratch
  • From: Bill Bumgarner <email@hidden>
  • Date: Mon, 14 Jul 2008 09:56:15 -0700

On Jul 14, 2008, at 8:58 AM, Jeff Johnson wrote:
I can't imagine much use for method_exchangeImplementations() with my own classes, because I can write the implementations myself. You certainly need to be careful, but my example seemed pretty innocuous. Calling at the beginning of main() should avoid IMP caching issues, should it not?

You are changing the implementation of a class that you did not write. It violates implementation encapsulation and, thus, there is risk therein.


It is likely that this particular use is innocuous. But maybe not. The class could do something fun in +load or +initialize. Or the class could change in some future release to dynamically provide the method implementation. Or the class could insist upon only using its particular implementation of that particular method (security comes to mind).

The issue is that the behavior is not guaranteed.

Yes, this kind of breakage does happen...

As I said, I was just doing a proof of concept. I haven't shipped any apps with that code, though I know plenty of developers who have shipped much 'worse'. Even published API sometimes break, so development always involves the assessment of risk and reward, and as far as I know, Apple provides no official support for developers apart from paid DTS incidents.

... and every release of Mac OS X includes a huge amount of engineering effort ensuring that the published APIs do not break as documented by the bugs filed during the development cycle. Rarely is a published API broken in a final release vs. the previous release for applications compiled against that previous release (i.e. there may be documented behavioral changes -- should be documented -- if you recompile targeting the new release).


No such support exists or will exist for use of implementation details directly (i.e. unpublished methods).

b.bum

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

References: 
 >Creating the app menu from scratch (From: "Jim Crafton" <email@hidden>)
 >Re: Creating the app menu from scratch (From: Jeff Johnson <email@hidden>)
 >Re: Creating the app menu from scratch (From: "Jim Crafton" <email@hidden>)
 >Re: Creating the app menu from scratch (From: Bill Bumgarner <email@hidden>)
 >Re: Creating the app menu from scratch (From: Jeff Johnson <email@hidden>)
 >Re: Creating the app menu from scratch (From: Bill Bumgarner <email@hidden>)
 >Re: Creating the app menu from scratch (From: Jeff Johnson <email@hidden>)

  • Prev by Date: Re: What is the best way?
  • Next by Date: Re: What is the best way?
  • Previous by thread: Re: Creating the app menu from scratch
  • Next by thread: Re: Creating the app menu from scratch
  • Index(es):
    • Date
    • Thread