On May 27, 2009, at 6:59 AM, Ignacio Enriquez wrote:
Hi.
I have a basic question regarding Class methods and instance methods
and memory allocation. (this is in iPhone OS 3.0 beta 5)

1.- What is the difference between string1 and string2? where
NSString *string1 = [NSString stringWithFormat:@"myFirstString"];
NSString *string2 = [[NSString alloc] initWithFormat:@"mySecondString"];

I thought that string1's memory allocation and release would be done
by the system (autoreleased) and string2's memory and release should
be done by me (by [string2 release])
Am i mistaking?

You are correct.


A funny thing is when doing:
NSLog(@"retainCount %i %i", [string1 retainCoung], [string2 retainCount]);
I got :
"retainCount  2147483647 2147483647"

So It seems that both objects are autorelease objects... Why is that?
I thougth that string2 retainCount would be 1.

This kind of refcount indicates a "real const" string. You are likely to see a different ref-count if you create a mutable string.



2.- How can I get two simple NSString instances with a retainCount equal to 1

In general don't worry about the exact ref-count values, but rather on making sure that you follow the Cocoa memory rules. The Leaks tool can assist in finding areas where you forgot to release objects. And the zombie mechanism can be used to track down over releases.
(since you are on the iPhone garbage collection is not an option).


Jesper Storm Bache
Core Technologies
Adobe Systems Inc



Any response would be very appreciated.
Regards

Ignacio


_____________________________________________
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/jsbache%40adobe.com

This email sent to jsba...@adobe.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to