Re: NSString Retain Count of 2147483647
Re: NSString Retain Count of 2147483647
- Subject: Re: NSString Retain Count of 2147483647
- From: Clark Cox <email@hidden>
- Date: Wed, 24 Jun 2009 07:57:17 -0700
On Wed, Jun 24, 2009 at 7:26 AM, Thomas Wetmore<email@hidden> wrote:
> I know you're not supposed to use retain counts when debugging memory
> issues, but I have found it very (VERY) useful at times. While looking at
> retain counts of NSStrings I have found an oddity that I think I understand,
> but would like confirmation if possible.
>
> When I use NSScanners to chop strings up, whenever I pull a one-character
> string out of a scanner that string has a retain count of 2147483647 (2**32
> - 1). My guess is that there are pre-allocated, one-character strings for
> all (most?) characters that are given this maximum possible value of a
> retain count, the digital equivalent of infinity. Then these one-character
> strings can be released pretty much to one's heart's content but never
> deallocated unless there is an incredible bug, in which case I'm guessing
> that another such one-character string would be allocated to replace it.
>
> Can anyone confirm this suspicion?
Yes and no. There are various optimizations that the frameworks do for
commonly used objects. However, there is no way, from your code, to
reliably predict when such singletons are used. Additionally, these
can change at any time; so, even if you were able to work out exactly
when these singleton objects were used, and when they weren't you
could very well be completely wrong at the next minor update to any of
the frameworks. It would be a huge mistake to try and rely on any of
this information.
This is one of the reasons that you really shouldn't be looking at
retainCount values.
--
Clark S. Cox III
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden