Skip navigation.
 
mlRe: initializers in Categories?
FROM : Adam R. Maxwell
DATE : Sat Jul 15 17:47:21 2006

On Jul 15, 2006, at 07:28, Mike Abdullah wrote:

> I do this quite a bit in my code.  However, I have experienced one 
> issue.
>
> I attempted to create a initWithDescriptor: method for NSArray (at 
> least I think it was NSArray).  The idea being that I could create 
> an array from an NSAppleEventDescriptor.  However, when you send 
> the initWithDescriptor: message, NSArray complains bitterly and 
> effectively crashes the app.  It seems you cannot send any messages 
> to an NSArray until you have used one of its init method.


You do need to be careful when writing these.  One way to do it is

@implementation NSArray (Descriptor)

- (id)initWithDescriptor:(id)descriptor;
{
  // get rid of the object from +alloc to avoid leaking it
  [[self init] release];
  return [[NSArray alloc] initWithObjects:descriptor, nil];
}

@end

>
> In the end to solve this I just made a +arrayWithDescriptor method 
> instead.


That works too, but I've found occasions where a non-autoreleased 
variant was required.

-- Adam

Related mailsAuthorDate
mlinitializers in Categories? Rob Ross Jul 13, 21:07
mlRe: initializers in Categories? I. Savant Jul 13, 21:13
mlRe: initializers in Categories? A.M. Jul 13, 21:33
mlRe: initializers in Categories? Sherm Pendley Jul 13, 21:38
mlRe: initializers in Categories? Rob Ross Jul 13, 21:54
mlRe: initializers in Categories? A.M. Jul 13, 22:02
mlRe: initializers in Categories? I. Savant Jul 13, 22:02
mlRe: initializers in Categories? Mike Abdullah Jul 15, 16:28
mlRe: initializers in Categories? Adam R. Maxwell Jul 15, 17:47