Skip navigation.
 
mlSwapping isa's (was Re: Hex Edit controls (resknife))
FROM : glenn andreas
DATE : Tue Nov 30 20:36:38 2004

On Nov 30, 2004, at 12:48 PM, John Stiles wrote:

> On Nov 30, 2004, at 10:46 AM, Andrew Farmer wrote:
>

>> On 29 Nov 2004, at 19:19, Jeff Laing wrote:

>>> I have to say, I'm not sure that the following is legal.
>>>
>>> @implementation NSTextView (HexTextView)
>>> - (void)swapForHexTextView
>>> {
>>>     isa = [HexTextView class];
>>> }
>>> @end
>>>
>>> Is 'isa' really writeable?  Is this not going to crash and burn???

>>
>> Believe it or not, it is.
>>

> Of course, "it's writable" is a separate statement from "it isn't
> going to crash and burn." That one is really kind of up in the air
> AFAIK :) I think you are probably open to memory leaks and all sorts
> of other potential problems if you go this route.
>


Changing isa is usually only safe if the old class and the new class
have the same instance variable layout (such as having the new class be
a subclass of the old one without any new instance variables).  In
general, though, you are better off adding the new class to IB and
setting it in your NIB to start with (and then you can have additional
ivars in your subclass).

However, combining isa-swapping with dynamic class creation (and
installing methods at runtime as well) allows for things like "per
instance methods" (you make a subclass for that instance only, add the
IMPs to it, and swap the isa).

Related mailsAuthorDate
mlRE: Hex Edit controls (resknife) Jeff Laing Nov 30, 04:19
mlRE: Hex Edit controls (resknife) M. Uli Kusterer Nov 30, 04:25
mlRe: Hex Edit controls (resknife) Andrew Farmer Nov 30, 19:46
mlRe: Hex Edit controls (resknife) John Stiles Nov 30, 19:48
mlSwapping isa's (was Re: Hex Edit controls (resknife)) glenn andreas Nov 30, 20:36
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Nov 30, 23:51
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Guy English Dec 1, 00:06
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 00:51
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Charles Srstka Dec 1, 04:02
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 04:22
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Charles Srstka Dec 1, 04:36
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 04:43
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Sherm Pendley Dec 1, 04:54
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 05:01
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) M. Uli Kusterer Dec 1, 08:29
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) M. Uli Kusterer Dec 1, 08:39
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 09:05
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 09:12
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 09:33
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) mmalcolm crawford Dec 1, 10:28
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 12:20
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Nick Zitzmann Dec 1, 15:40
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Charles Srstka Dec 1, 17:22
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Glen Simmons Dec 1, 19:41
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Chris Hanson Dec 1, 20:18
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 22:33
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Glen Simmons Dec 1, 22:53
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 1, 23:28
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Chris Hanson Dec 2, 02:57
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Sherm Pendley Dec 2, 03:00
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 2, 03:16
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 2, 03:26
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Chris Hanson Dec 2, 03:42
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Nicko van Someren Dec 2, 03:51
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 2, 04:00
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Georg Tuparev Dec 2, 09:34
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Nicholas Shanks Dec 2, 16:42
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 2, 22:24
mlRE: Swapping isa's (was Re: Hex Edit controls (resknife)) Jeff Laing Dec 3, 10:00
mlRe: Swapping isa's (was Re: Hex Edit controls (resknife)) Darkshadow Dec 3, 15:33