Skip navigation.
 
mlRe: Garbage collector vs variable lifetime
FROM : Charles Srstka
DATE : Tue Jun 10 17:28:13 2008

On Jun 9, 2008, at 5:55 PM, Hamish Allan wrote:

> Sure. But it gives you *more* information than if it just returns
> "id". I agree with you in all other respects of your post, but I don't
> agree that +[NSArray array] returns "id" because if it returned
> "NSArray *" you'd have to have a separate declaration for
> +[NSMutableArray array]. Indeed, that line of reasoning leads to
> John's way of thinking: that if you return something more specific
> than "id", it is in some sense indicative that the returned object is
> more likely to be of a specific class, rather than a subclass thereof.


I think the problem is that if NSArray has +[NSArray array] returning 
an NSArray, then NSMutableArray has to return an NSArray also, since 
it can't have a different method signature for the same method. As a 
result, if you called +[NSMutableArray array], the compiler would 
think you were getting a regular, non-mutable NSArray, and you'd get a 
warning if you tried to do this, although the code would still work:

NSMutableArray *array = [NSMutableArray array];

The only way to get the compiler warnings to shut up would be to cast 
it. If the methods return id, then the compiler just assumes you're 
doing the right thing (which also means you can do stupid things like 
assign +[NSMutableArray array] to an NSString or something which would 
of course end up blowing up before too long, so it's not perfect 
either, but it's certainly less annoying than having to typecast every 
assignment of a newly-initialized NSMutableArray).

Charles

Related mailsAuthorDate
mlGarbage collector vs variable lifetime Quincey Morris Jun 7, 00:23
mlRe: Garbage collector vs variable lifetime Bill Bumgarner Jun 7, 00:48
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 7, 01:18
mlRe: Garbage collector vs variable lifetime Ricky Sharp Jun 7, 01:24
mlRe: Garbage collector vs variable lifetime Quincey Morris Jun 7, 01:27
mlRe: Garbage collector vs variable lifetime Nick Zitzmann Jun 7, 01:30
mlRe: Garbage collector vs variable lifetime Bill Bumgarner Jun 7, 01:31
mlRe: Garbage collector vs variable lifetime Shawn Erickson Jun 7, 01:33
mlRe: Garbage collector vs variable lifetime Bill Bumgarner Jun 7, 01:42
mlRe: Garbage collector vs variable lifetime Clark Cox Jun 7, 01:55
mlRe: Garbage collector vs variable lifetime Ricky Sharp Jun 7, 02:05
mlRe: Garbage collector vs variable lifetime Quincey Morris Jun 7, 02:36
mlRe: Garbage collector vs variable lifetime George Stuart Jun 7, 02:51
mlRe: Garbage collector vs variable lifetime Antonio Nunes Jun 7, 05:48
mlRe: Garbage collector vs variable lifetime Bill Bumgarner Jun 7, 05:49
mlRe: Garbage collector vs variable lifetime Ken Thomases Jun 7, 06:16
mlRe: Garbage collector vs variable lifetime Bill Bumgarner Jun 7, 07:03
mlRe: Garbage collector vs variable lifetime Antonio Nunes Jun 7, 09:07
mlRe: Garbage collector vs variable lifetime Quincey Morris Jun 7, 10:32
mlRe: Garbage collector vs variable lifetime Quincey Morris Jun 7, 10:41
mlRe: Garbage collector vs variable lifetime Ken Thomases Jun 7, 13:13
mlRe: Garbage collector vs variable lifetime Ken Thomases Jun 7, 13:14
mlRe: Garbage collector vs variable lifetime Michael Ash Jun 7, 13:34
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 7, 14:29
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 7, 14:35
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 7, 14:47
mlRe: Garbage collector vs variable lifetime Michael Ash Jun 7, 15:18
mlRe: Garbage collector vs variable lifetime Ricky Sharp Jun 7, 15:59
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 7, 16:31
mlRe: Garbage collector vs variable lifetime John Engelhart Jun 7, 17:03
mlRe: Garbage collector vs variable lifetime Quincey Morris Jun 7, 20:19
mlRe: Garbage collector vs variable lifetime Michael Ash Jun 7, 20:30
mlRe: Garbage collector vs variable lifetime Peter Duniho Jun 7, 20:34
mlRe: Garbage collector vs variable lifetime Michael Ash Jun 7, 20:35
mlRe: Garbage collector vs variable lifetime Michael Ash Jun 7, 20:45
mlRe: Garbage collector vs variable lifetime Jean-Daniel Dupas Jun 7, 21:07
mlRe: Garbage collector vs variable lifetime Ricky Sharp Jun 7, 21:43
mlRe: Garbage collector vs variable lifetime Ricky Sharp Jun 7, 21:43
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 8, 00:24
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 8, 00:37
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 8, 00:51
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 8, 01:11
mlRe: Garbage collector vs variable lifetime Peter Duniho Jun 8, 02:15
mlRe: Garbage collector vs variable lifetime Bill Bumgarner Jun 8, 02:23
mlRe: Garbage collector vs variable lifetime Michael Ash Jun 8, 04:10
mlRe: Garbage collector vs variable lifetime Quincey Morris Jun 8, 08:24
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 8, 09:40
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 8, 09:47
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 8, 10:05
mlRe: Garbage collector vs variable lifetime Paul Sargent Jun 8, 12:23
mlRe: Garbage collector vs variable lifetime Chris Kane Jun 9, 01:53
mlRe: Garbage collector vs variable lifetime John Engelhart Jun 9, 02:39
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 9, 05:48
mlRe: Garbage collector vs variable lifetime Peter Duniho Jun 9, 07:55
mlRe: Garbage collector vs variable lifetime John Engelhart Jun 9, 09:56
mlRe: Garbage collector vs variable lifetime Jean-Daniel Dupas Jun 9, 10:11
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 9, 12:33
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 9, 12:51
mlRe: Garbage collector vs variable lifetime Antonio Nunes Jun 9, 13:54
mlRe: Garbage collector vs variable lifetime Charles Srstka Jun 9, 18:37
mlRe: Garbage collector vs variable lifetime John Engelhart Jun 9, 19:24
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 9, 20:02
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 9, 20:17
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 9, 20:39
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 10, 00:55
mlRe: Garbage collector vs variable lifetime Charles Srstka Jun 10, 17:19
mlRe: Garbage collector vs variable lifetime Charles Srstka Jun 10, 17:28
mlRe: Garbage collector vs variable lifetime Adam R. Maxwell Jun 10, 18:18
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 10, 22:17
mlRe: Garbage collector vs variable lifetime John Engelhart Jun 11, 09:01
mlRe: Garbage collector vs variable lifetime Chris Hanson Jun 11, 09:15
mlRe: Garbage collector vs variable lifetime Jim Puls Jun 11, 09:29
mlRe: Garbage collector vs variable lifetime Graham Cox Jun 11, 09:35
mlRe: Garbage collector vs variable lifetime Jean-Daniel Dupas Jun 11, 09:41
mlRe: Garbage collector vs variable lifetime Hamish Allan Jun 11, 11:06
mlRe: Garbage collector vs variable lifetime Andy Lee Jun 11, 14:42
mlRe: Garbage collector vs variable lifetime Charles Srstka Jun 11, 16:55
mlRe: Garbage collector vs variable lifetime Clark Cox Jun 11, 17:45
mlRe: Garbage collector vs variable lifetime j o a r Jun 11, 17:49
ml[moderator] Re: Garbage collector vs variable lifetime Scott Anguish Jun 11, 17:51