FROM : Michael Watson
DATE : Thu Jul 03 21:29:49 2008
Well, look at what you're doing:
1. First, you declare a pointer to an NSMutableString object called
"theSettings".
2. You then allocate and initialize an empty NSMutableString object. A
pointer to some address in memory is returned, and you assign
theSettings to this value. Now theSettings is a pointer to the address
of this NSMutableString object you just allocated.
3. Inside your loop, you call a method that returns a pointer to a new
object, reassigning theSettings to that pointer, which overwrites the
original value of theSettings. You never use the NSMutableString
object you allocated before the loop. (And now you can't release it,
if you're not using garbage collection. You'll leak that object.)
You should pick up a copy of K&R and read up on pointers. In the
meantime, there's also Uli Kusterer's excellent Masters of the Void
tutorials, which contains a good chapter on this stuff too:
http://masters-of-the-void.com/
--
m-s
On 03 Jul, 2008, at 14:57, Chris Paveglio wrote:
> My code is like this:
>
> NSMutableString *theSettings;
> theSettings = [[NSMutableString alloc] init];
>
> //myPrefs is an array of strings, each item is like "Library/Safari"
>
> int i;
> for (i = 0; i < 8; i++
> {
> theSettings = [NSHomeDirectory() stringByAppendingPathComponent:
> [myPrefs objectAtIndex:i]];
> ....
> }
>
> Thinking about it, do I need the alloc and init commands? Sometimes
> I am unsure about what needs alloc or init versus what I can just
> declare as a variable without doing that.
>
> Thanks for your help!
> Chris
>
>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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/mikey-san
> %40bungie.org
>
> This email sent to <email_removed>
DATE : Thu Jul 03 21:29:49 2008
Well, look at what you're doing:
1. First, you declare a pointer to an NSMutableString object called
"theSettings".
2. You then allocate and initialize an empty NSMutableString object. A
pointer to some address in memory is returned, and you assign
theSettings to this value. Now theSettings is a pointer to the address
of this NSMutableString object you just allocated.
3. Inside your loop, you call a method that returns a pointer to a new
object, reassigning theSettings to that pointer, which overwrites the
original value of theSettings. You never use the NSMutableString
object you allocated before the loop. (And now you can't release it,
if you're not using garbage collection. You'll leak that object.)
You should pick up a copy of K&R and read up on pointers. In the
meantime, there's also Uli Kusterer's excellent Masters of the Void
tutorials, which contains a good chapter on this stuff too:
http://masters-of-the-void.com/
--
m-s
On 03 Jul, 2008, at 14:57, Chris Paveglio wrote:
> My code is like this:
>
> NSMutableString *theSettings;
> theSettings = [[NSMutableString alloc] init];
>
> //myPrefs is an array of strings, each item is like "Library/Safari"
>
> int i;
> for (i = 0; i < 8; i++
> {
> theSettings = [NSHomeDirectory() stringByAppendingPathComponent:
> [myPrefs objectAtIndex:i]];
> ....
> }
>
> Thinking about it, do I need the alloc and init commands? Sometimes
> I am unsure about what needs alloc or init versus what I can just
> declare as a variable without doing that.
>
> Thanks for your help!
> Chris
>
>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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/mikey-san
> %40bungie.org
>
> This email sent to <email_removed>






Cocoa mail archive

