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
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 mails | Author | Date |
|---|---|---|
| Rob Ross | Jul 13, 21:07 | |
| I. Savant | Jul 13, 21:13 | |
| A.M. | Jul 13, 21:33 | |
| Sherm Pendley | Jul 13, 21:38 | |
| Rob Ross | Jul 13, 21:54 | |
| A.M. | Jul 13, 22:02 | |
| I. Savant | Jul 13, 22:02 | |
| Mike Abdullah | Jul 15, 16:28 | |
| Adam R. Maxwell | Jul 15, 17:47 |






Cocoa mail archive

