Skip navigation.
 
mlRe: Trying to understand -- please help...
FROM : glenn andreas
DATE : Thu May 22 23:42:22 2008

On May 22, 2008, at 4:13 PM, Johnny Lundy wrote:

> My point in using that class reference was simply to show how 
> someone could follow the "manual" and still have his code not work.
>
> Actually, the "introductory documentation" never actually says that 
> the convenience constructors always return autoreleased objects -- 
> it just says that they "in general" do (paraphrasing).
>
> Even more reason, IMO, for the Class Reference to explicitly say 
> what the class does with the returned objects.
>
> The way it is written, the objects are retained; so one should 
> conclude that they are not autoreleased.
>
> If that is true, there is nothing wrong with the documentation.
>


But the focus shouldn't be on if the object returned is auto-released 
or not, because it doesn't really matter what "producer" did, it 
matters what the "consumer" wants to do.

For example:

   [NSNumber numberWithInt: x];

May return an auto-released newly created object, or it may return a 
cached singleton.  For small numbers such as 0 and 1 (and probably a 
bunch more) it'll be a cached singleton - the exact details are both 
subject to change, and ultimately unimportant.  You don't care where 
that value comes from - if it is auto-released, or maybe a constant 
that will live until your program exits, all you know is that if you 
want to keep a reference to it for later, you'll need retain it.

So if the documentation for +[NSNumber numberWithInt:] said "returns 
an auto-released object" it would be incorrect.  And to say "in 
general, it is auto-released" sounds like it wouldn't be any different 
than what it says now (and thus no more helpful).

If you're focused on "is this auto-released or not" you're missing the 
point.  The memory management rules are all about "are you responsible 
for it" (alloc, copy, etc...) and "do you want to keep it around" (and 
then you need to decide if you want a reference to the object (retain) 
or the value (copy/mutableCopy)).  This is why it is important to 
understand the memory management rules - once you understand them you 
don't ever worry about those sorts of details...




Glenn Andreas                      <email_removed>
  <http://www.gandreas.com/> wicked fun!
m.o.t.e.s. | minute object twisted environment simulation

Related mailsAuthorDate
mlTrying to understand -- please help... john darnell May 21, 18:05
mlRe: Trying to understand -- please help... Torsten Curdt May 21, 18:13
mlRe: Trying to understand -- please help... Vijay Malhan May 21, 18:16
mlRe: Trying to understand -- please help... Paul Bailey May 21, 18:20
mlRe: Trying to understand -- please help... Hank Heijink (Mail… May 21, 18:28
mlRe: Trying to understand -- please help... João Pavão May 21, 18:29
mlRe: Trying to understand -- please help... Gérard Iglesias May 21, 18:34
mlRE: Trying to understand -- please help... john darnell May 21, 18:41
mlTrying to understand -- please help... Peter Hudson May 21, 18:47
mlRe: Trying to understand -- please help... Gérard Iglesias May 21, 18:49
mlRe: Trying to understand -- please help... Clark Cox May 21, 19:03
mlRe: Trying to understand -- please help... Gérard Iglesias May 21, 19:11
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 19:17
mlRe: Trying to understand -- please help... Bill Bumgarner May 21, 19:21
mlRe: Trying to understand -- please help... Hank Heijink (Mail… May 21, 19:25
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 19:32
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 19:36
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 19:38
mlRe: Trying to understand -- please help... Ilan Volow May 21, 19:40
mlRe: Trying to understand -- please help... I. Savant May 21, 20:05
mlRe: Trying to understand -- please help... I. Savant May 21, 20:07
mlTrying to understand -- please help... Johnny Lundy May 21, 20:35
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 20:45
mlRe: Trying to understand -- please help... Vijay Malhan May 21, 20:47
mlRe: Trying to understand -- please help... Bill Bumgarner May 21, 20:48
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 20:54
mlRe: Trying to understand -- please help... I. Savant May 21, 20:57
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 21:00
mlRe: Trying to understand -- please help... I. Savant May 21, 21:00
ml+initialize (was Re: Trying to understand -- please help...) Jason Stephenson May 21, 21:00
mlRe: Trying to understand -- please help... Michael Vannorsdel May 21, 21:07
mlRe: Trying to understand -- please help... Ilan Volow May 21, 21:08
mlRe: Trying to understand -- please help... Vijay Malhan May 21, 21:14
mlRe: Trying to understand -- please help... Shawn Erickson May 21, 21:24
mlTrying to understand -- please help... Johnny Lundy May 21, 21:37
mlRe: Trying to understand -- please help... Andy Lee May 21, 21:41
mlRe: Trying to understand -- please help... Jeff LaMarche May 21, 21:58
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 22:07
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 22:20
mlRe: Trying to understand -- please help... Uli Kusterer May 21, 22:33
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 22:37
mlRe: Trying to understand -- please help... Uli Kusterer May 21, 22:45
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 22:52
mlRe: Trying to understand -- please help... Christopher Nebel May 21, 23:06
mlRe: Trying to understand -- please help... Hamish Allan May 21, 23:09
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 23:15
mlRe: Trying to understand -- please help... Ken Thomases May 21, 23:28
mlRe: Trying to understand -- please help... Sherm Pendley May 21, 23:29
mlRe: Trying to understand -- please help... Andy Lee May 22, 01:18
mlRe: Trying to understand -- please help... Jens Alfke May 22, 04:23
mlRe: Trying to understand -- please help... Jens Alfke May 22, 04:30
mlRe: Trying to understand -- please help... Jens Alfke May 22, 04:37
mlRe: Trying to understand -- please help... Michael Vannorsdel May 22, 04:55
mlRE: Trying to understand -- please help... Caleb Strockbine May 22, 16:27
mlRe: Trying to understand -- please help... Greg Titus May 22, 17:43
mlRe: Trying to understand -- please help... glenn andreas May 22, 18:25
mlRe: Trying to understand -- please help... Andy Lee May 22, 22:08
mlRe: Trying to understand -- please help... Andy Lee May 22, 22:15
mlRe: Trying to understand -- please help... Joseph Kelly May 22, 22:16
mlRe: Trying to understand -- please help... Johnny Lundy May 22, 23:13
mlRe: Trying to understand -- please help... glenn andreas May 22, 23:42
mlRe: Trying to understand -- please help... Sherm Pendley May 22, 23:59
mlRe: Trying to understand -- please help... Andy Lee May 23, 00:02